[EFL] Enable MHTML feature
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-01-01  KwangYong Choi  <ky0.choi@samsung.com>
2
3         [EFL] Enable MHTML feature
4         https://bugs.webkit.org/show_bug.cgi?id=105815
5
6         Reviewed by Laszlo Gombos.
7
8         Add application/x-mimearchive type to archive mime types.
9         Add mht and mhtml to extension map.
10
11         No new tests. Existing layout tests pass.
12
13         * loader/archive/ArchiveFactory.cpp:
14         (WebCore::archiveMIMETypes):
15         * platform/efl/MIMETypeRegistryEfl.cpp:
16         (WebCore):
17
18 2013-01-01  Mike West  <mkwst@chromium.org>
19
20         seamless iframes don't inherit styles when srcdoc is used
21         https://bugs.webkit.org/show_bug.cgi?id=103539
22
23         Reviewed by Eric Seidel.
24
25         Seamless iframes populated via a 'srcdoc' attribute should always
26         inherit styles from their parent documents. At the moment, this is
27         only the case when they contain a stylesheet or some other markup
28         that forces a style recalculation on the document. Simple 'srcdoc'
29         attributes (e.g. "srcdoc='<p>This is a comment.</p>'") bail out of
30         recalculating style early, resulting in unstyled appearance.
31
32         This patch instructs WebCore to treat seamless documents as having an
33         updated StyleResolver regardless of what actions the parser takes,
34         which in turn ensures that the document's style is recalculated
35         correctly.
36
37         Test: fast/frames/seamless/seamless-srcdoc.html
38
39         * dom/Document.cpp:
40         (WebCore::Document::finishedParsing):
41             If it's a seamless document, notify it that its StyleResolver isn't
42             what it might have expected.
43
44 2012-12-31  Jeff Rogers  <jrogers@rim.com>
45
46         [BlackBerry] Fullscreen Media Time Indicators Background Incorrect
47         https://bugs.webkit.org/show_bug.cgi?id=105888
48
49         Reviewed by George Staikos.
50
51         Internal PR 272699.
52         Update fullscreen media controls CSS to fix time container background
53         color. Also fix transparency to be 80% opaque to and the time
54         remaining text color to match the system player.
55
56         No new tests as there is no functionality change.
57
58         * css/mediaControlsBlackBerryFullscreen.css:
59         (video:-webkit-full-screen::-webkit-media-controls-panel):
60         (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-display-container):
61         (video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline-container):
62         (video:-webkit-full-screen::-webkit-media-controls-fullscreen-current-time-display):
63         (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-remaining-display):
64         (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container, video:-webkit-full-screen::-webkit-media-controls-play-button-container):
65         (video:-webkit-full-screen::-webkit-media-controls-placeholder):
66
67 2012-12-31  Kondapally Kalyan  <kalyan.kondapally@intel.com>
68
69         [EFL][WebGL] Add compile time support for GLES2.
70         https://bugs.webkit.org/show_bug.cgi?id=105816
71
72         Reviewed by Kenneth Rohde Christiansen.
73
74         This patch adds build support for GLES2.
75         GLES2 support can be enabled during compile time by passing -DENABLE_GLES2=ON as
76         cmake config parameter. GLES2 options is not enabled by default. This patch doesn't
77         address all the build issues related to GLES2 but only adds the needed support in
78         PlatformEfl.cmake.
79
80         * PlatformEfl.cmake:
81
82 2012-12-31  Andy Chen  <andchen@rim.com>
83
84         [BlackBerry] The HTML5 video fullscreen time indicator on the right cuts clipped when the video is longer than 1 hour
85         https://bugs.webkit.org/show_bug.cgi?id=105887
86
87         Reviewed by George Staikos.
88
89         The width of the time part was fixed. Remove it.
90
91         No new test is required because no functionality change.
92
93         * platform/blackberry/RenderThemeBlackBerry.cpp:
94         (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
95
96 2012-12-30  Kondapally Kalyan  <kalyan.kondapally@intel.com>
97
98         [EFL] [WebGL] Rename EGLConfigHelper as EGLConfigSelector.
99         https://bugs.webkit.org/show_bug.cgi?id=105876
100
101         Reviewed by Kenneth Rohde Christiansen.
102
103         This is to sync the naming conventions of our classes in both EGL and GLX implementations. 
104         In our GLX implementation, class responsible for the same functionality is named as GLXConfigSelector. 
105         This patch renames EGLConfigHelper as EGLConfigSelector.
106
107         * PlatformEfl.cmake:
108         * platform/graphics/surfaces/egl/EGLConfigSelector.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/egl/EGLConfigHelper.cpp.
109         (WebCore):
110         (WebCore::SharedEGLDisplay::deref):
111         (WebCore::SharedEGLDisplay::sharedEGLDisplay):
112         (WebCore::SharedEGLDisplay::SharedEGLDisplay):
113         (WebCore::SharedEGLDisplay::cleanup):
114         (WebCore::SharedEGLDisplay::~SharedEGLDisplay):
115         (WebCore::EGLConfigSelector::EGLConfigSelector):
116         (WebCore::EGLConfigSelector::~EGLConfigSelector):
117         (WebCore::EGLConfigSelector::display):
118         (WebCore::EGLConfigSelector::pBufferContextConfig):
119         (WebCore::EGLConfigSelector::surfaceContextConfig):
120         (WebCore::EGLConfigSelector::nativeVisualId):
121         (WebCore::EGLConfigSelector::reset):
122         (WebCore::EGLConfigSelector::createConfig):
123         * platform/graphics/surfaces/egl/EGLConfigSelector.h: Renamed from Source/WebCore/platform/graphics/surfaces/egl/EGLConfigHelper.h.
124         (WebCore):
125         (SharedEGLDisplay):
126         (WebCore::SharedEGLDisplay::create):
127         (EGLConfigSelector):
128         * platform/graphics/surfaces/egl/EGLSurface.cpp:
129         (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
130         (WebCore::EGLWindowTransportSurface::configuration):
131         (WebCore::EGLWindowTransportSurface::destroy):
132         * platform/graphics/surfaces/egl/EGLSurface.h:
133         (EGLWindowTransportSurface):
134
135 2012-12-30  Philippe Normand  <pnormand@igalia.com>
136
137         [GStreamer] webaudio/decode-audio-data-basic.html fails
138         https://bugs.webkit.org/show_bug.cgi?id=105298
139
140         Reviewed by Martin Robinson.
141
142         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
143         (WebCore::AudioFileReader::createBus): Return a null pointer if an
144         error happened while processing a media file.
145
146 2012-12-30  Christophe Dumez  <christophe.dumez@intel.com>
147
148         Regression(r138545): Makes WebAudio tests crash
149         https://bugs.webkit.org/show_bug.cgi?id=105869
150
151         Reviewed by Philippe Normand.
152
153         Stop using smart pointers and adoptGRef() for the
154         GstBus object and call gst_object_unref() manually.
155         This fixes assertions hits when calling adoptGRef()
156         since the GstBus object has a floating reference.
157
158         Alternatively, we could keep using smart pointers
159         and stop calling adoptGRef() so that
160         gst_object_ref_sink() is called and the floating
161         flag is cleared but I think it is clearer to do
162         it manually here.
163
164         No new tests, already covered by existing tests.
165
166         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
167         (WebCore::messageCallback):
168         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
169         (WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
170         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
171         (WebCore::AudioFileReader::~AudioFileReader):
172         (WebCore::AudioFileReader::decodeAudioForBusCreation):
173
174 2012-12-29  Dimitri Glazkov  <dglazkov@chromium.org>
175
176         Rename StyleResolver's member variable that holds SelectorChecker to a proper name.
177         https://bugs.webkit.org/show_bug.cgi?id=105864
178
179         In https://bugs.webkit.org/show_bug.cgi?id=105660#c11, Antti suggested renaming m_checker to
180         m_selectorChecker. I've forgotten about that, but now I remembered it.
181
182         Reviewed by Eric Seidel.
183
184         No change in functionality, covered by existing tests.
185
186         * css/StyleResolver.cpp/h: Renamed all instances of m_checker to m_selectorChecker.
187
188 2012-12-29  Dimitri Glazkov  <dglazkov@chromium.org>
189
190         Move pointer to Document up from SelectorChecker to StyleResolver.
191         https://bugs.webkit.org/show_bug.cgi?id=105863
192
193         Now that SelectorChecker is mostly stateless, it no longer needs to keep a pointer to Document, which
194         makes all the code in StyleResolver that reaches for it sort of weird.
195
196         Reviewed by Eric Seidel.
197
198         No change in functionality, covered by existing tests.
199
200         * css/SelectorChecker.cpp:
201         (WebCore::SelectorChecker::SelectorChecker): Changed to take document as argument (only used to set bit fields).
202         (WebCore::SelectorChecker::checkOneSelector): Changed to use element document.
203         (WebCore::SelectorChecker::checkScrollbarPseudoClass): Ditto.
204         * css/SelectorChecker.h:
205         (WebCore): Removed unnecessary Document forward declaration.
206         (SelectorChecker): Changed constructor declaration, and removed m_document member.
207         * css/StyleResolver.cpp:
208         (WebCore::StyleResolver::StyleResolver): Adjusted SelectorChecker initializer accordingly.
209         (WebCore::StyleResolver::initElement): Changed to use own document accessor.
210         (WebCore::StyleResolver::initForStyleResolve): Ditto.
211         (WebCore::StyleResolver::matchUARules): Ditto.
212         (WebCore::StyleResolver::styleForPage): Ditto.
213         (WebCore::StyleResolver::applyProperty): Ditto.
214         (WebCore::StyleResolver::checkForGenericFamilyChange): Ditto.
215         (WebCore::StyleResolver::initializeFontStyle): Ditto.
216         (WebCore::StyleResolver::setFontSize): Ditto.
217         * css/StyleResolver.h:
218         (WebCore::StyleResolver::document): Changed to use own member.
219         (WebCore::StyleResolver::documentSettings): Ditto.
220         (StyleResolver): Added m_document member.
221         * dom/SelectorQuery.cpp:
222         (WebCore::SelectorQuery::matches): Changed callsite to reflect new constructor signature.
223         (WebCore::SelectorQuery::queryAll): Ditto.
224         (WebCore::SelectorQuery::queryFirst): Ditto.
225         * html/shadow/ContentSelectorQuery.cpp:
226         (WebCore::ContentSelectorChecker::ContentSelectorChecker): Ditto.
227         (WebCore::ContentSelectorQuery::ContentSelectorQuery): Ditto.
228         * html/shadow/ContentSelectorQuery.h:
229         (ContentSelectorChecker): Removed unnecessary argument.
230
231 2012-12-29  Otto Derek Cheung  <otcheung@rim.com>
232
233         [BlackBerry] Cookies with an IP domain are not being loaded properly into memory
234         https://bugs.webkit.org/show_bug.cgi?id=105859
235
236         PR 271597
237
238         Reviewed by George Staikos.
239
240         The isIP flag isn't persistented in the database. We need to check it
241         again when we load it into memory.
242
243         * platform/blackberry/CookieManager.cpp:
244         (WebCore::CookieManager::getBackingStoreCookies):
245
246 2012-12-29  Kondapally Kalyan  <kalyan.kondapally@intel.com>
247
248         [EFL][WebGL] Refactor GLXImplementation.
249         https://bugs.webkit.org/show_bug.cgi?id=105825
250
251         Reviewed by Kenneth Rohde Christiansen.
252
253         This patch decouples native window management and logic to find surface configuration in GLX implementation.
254
255         * platform/graphics/opengl/GLDefs.h:
256         * platform/graphics/surfaces/glx/GLXConfigSelector.h: Renamed from Source/WebCore/platform/graphics/surfaces/glx/GLXWindowResources.h.
257         (WebCore):
258         (GLXConfigSelector):
259         (WebCore::GLXConfigSelector::GLXConfigSelector):
260         (WebCore::GLXConfigSelector::~GLXConfigSelector):
261         (WebCore::GLXConfigSelector::visualInfo):
262         (WebCore::GLXConfigSelector::pBufferContextConfig):
263         (WebCore::GLXConfigSelector::surfaceContextConfig):
264         (WebCore::GLXConfigSelector::reset):
265         (WebCore::GLXConfigSelector::createConfig):
266
267         Helper class to find surface configuration.
268
269         * platform/graphics/surfaces/glx/GLXContext.h:
270         (GLXOffScreenContext):
271         * platform/graphics/surfaces/glx/GLXSurface.cpp:
272         (WebCore::GLXTransportSurface::GLXTransportSurface):
273         (WebCore::GLXTransportSurface::configuration):
274         (WebCore::GLXTransportSurface::setGeometry):
275         (WebCore::GLXTransportSurface::destroy):
276         (WebCore::GLXPBuffer::GLXPBuffer):
277         (WebCore::GLXPBuffer::initialize):
278         (WebCore::GLXPBuffer::configuration):
279         * platform/graphics/surfaces/glx/GLXSurface.h:
280         (GLXTransportSurface):
281         (GLXPBuffer):
282
283         Inheritance changed from X11OffScreenWindow to GLPlatformSurface.
284
285         * platform/graphics/surfaces/glx/X11WindowResources.cpp:
286         (WebCore):
287         (WebCore::X11OffScreenWindow::X11OffScreenWindow):
288         (WebCore::X11OffScreenWindow::reSizeWindow):
289         (WebCore::X11OffScreenWindow::createOffscreenWindow):
290         (WebCore::X11OffScreenWindow::destroyWindow):
291         (WebCore::X11OffScreenWindow::nativeSharedDisplay):
292         (WebCore::X11OffScreenWindow::setVisualInfo):
293         (WebCore::X11OffScreenWindow::isXRenderExtensionSupported):
294         * platform/graphics/surfaces/glx/X11WindowResources.h:
295         (WebCore::SharedX11Resources::create):
296         (SharedX11Resources):
297         (X11OffScreenWindow):
298
299          Removed code related to surface configiration.
300
301 2012-12-29  Eugene Klyuchnikov  <eustas@chromium.org>
302
303         Web Inspector: [Timeline] cpu bar popover shows wrong duration / cpu time.
304         https://bugs.webkit.org/show_bug.cgi?id=105854
305
306         Reviewed by Vsevolod Vlasov.
307
308         Problem: CPU task indexes are already incremented before written to
309         data structure.
310
311         * inspector/front-end/TimelinePanel.js:
312         (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
313         Use for loop to get correct indexes.
314
315 2012-12-28  Ilya Tikhonovsky  <loislo@chromium.org>
316
317         Web Inspector: Native Memory Instrumentation: instrument not instrumented members.
318         https://bugs.webkit.org/show_bug.cgi?id=105830
319
320         Reviewed by Vsevolod Vlasov.
321
322         In some cases we don't want to visit some class members.
323         As example we decided to skip pointers to interface classes such as GraphicLayerClient.
324         We could use addWeakPointer for them but it can't be used for nonpointer members.
325         In the offline discussion we came to a conclusion that we need a new instrumentation
326         method ignoreMember, which will be used for all the members which we won't like to visit/instrument.
327
328         DriveBy: Also I instrumented not yet instrumented members.
329
330         * bindings/v8/DOMWrapperMap.h:
331         (WebCore::DOMWrapperMap::reportMemoryUsage):
332         * bindings/v8/ScriptWrappable.h:
333         (WebCore::ScriptWrappable::reportMemoryUsage):
334         * html/HTMLMediaElement.cpp:
335         (WebCore::HTMLMediaElement::reportMemoryUsage):
336         * platform/KURLGoogle.cpp:
337         (WebCore::KURLGooglePrivate::reportMemoryUsage):
338         * platform/SharedBuffer.cpp:
339         (WebCore::SharedBuffer::reportMemoryUsage):
340         * platform/audio/AudioArray.h:
341         (WebCore::AudioArray::reportMemoryUsage):
342         * platform/graphics/GraphicsLayer.cpp:
343         (WebCore::GraphicsLayer::reportMemoryUsage):
344         * rendering/RenderLayerCompositor.cpp:
345         (WebCore::RenderLayerCompositor::reportMemoryUsage):
346         * rendering/RenderTableSection.cpp:
347         (WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
348         * rendering/style/RenderStyle.cpp:
349         (WebCore::RenderStyle::reportMemoryUsage):
350         * rendering/style/StyleRareInheritedData.cpp:
351         (WebCore::StyleRareInheritedData::reportMemoryUsage):
352
353 2012-12-29  Andrey Lushnikov  <lushnikov@chromium.com>
354
355         Web Inspector: refactor DefaultTextEditor - annotate handlers and fix getters style
356         https://bugs.webkit.org/show_bug.cgi?id=105829
357
358         Reviewed by Pavel Feldman.
359
360         Refactor DefaultTextEditor.js: improve handler method annotations,
361         remove "get" prefix from method names, get rid of unnecessary
362         delegation (e.g. see _handleCut).
363
364         No new tests: no change in behaviour.
365
366         * inspector/front-end/DefaultTextEditor.js:
367         (WebInspector.DefaultTextEditor):
368         (WebInspector.DefaultTextEditor.prototype._contextMenu):
369         (WebInspector.DefaultTextEditor.prototype.selection):
370         (WebInspector.DefaultTextEditor.prototype.lastSelection):
371         (WebInspector.DefaultTextEditor.prototype.wasShown):
372         (WebInspector.DefaultTextEditor.prototype.willHide):
373         (WebInspector.TextEditorChunkedPanel.prototype.createNewChunk):
374         (WebInspector.TextEditorMainPanel):
375         (WebInspector.TextEditorMainPanel.prototype.wasShown):
376         (WebInspector.TextEditorMainPanel.prototype.willHide):
377         (WebInspector.TextEditorMainPanel.prototype.populateContextMenu):
378         (WebInspector.TextEditorMainPanel.prototype.splitChunkOnALine):
379         (WebInspector.TextEditorMainPanel.prototype.expandChunks):
380         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
381         (WebInspector.TextEditorMainPanel.prototype.selection):
382         (WebInspector.TextEditorMainPanel.prototype.lastSelection):
383         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
384         (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
385         (WebInspector.TextEditorMainPanel.prototype._handleTextInput):
386         (WebInspector.TextEditorMainPanel.prototype.handleKeyDown):
387         (WebInspector.TextEditorMainPanel.prototype._handleCut):
388
389 2012-12-28  No'am Rosenthal  <noam@webkit.org>
390
391         REGRESSION: r138555 asserts on Linux EFL/Qt debug builds
392         https://bugs.webkit.org/show_bug.cgi?id=105848
393
394         Unreviewed test fix.
395
396         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
397             Added parameter name to noop shader.
398
399 2012-12-28  No'am Rosenthal  <noam@webkit.org>
400
401         [Texmap] Use a transform uniform instead of u_flip/u_textureSize
402         https://bugs.webkit.org/show_bug.cgi?id=105809
403
404         Reviewed by Martin Robinson.
405
406         In order to support tiled-patterns, we'd have to apply texture-space transformations in the
407         vertex shader. 
408         This patch cleans up the current texture-space transformations, and uses 
409         single matrix uniform instead of the current uniforms.
410
411         No new tests, refactor only.
412
413         * platform/graphics/texmap/TextureMapperGL.cpp:
414         (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
415         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
416         (WebCore):
417         * platform/graphics/texmap/TextureMapperShaderManager.h:
418         (TextureMapperShaderProgram):
419
420 2012-12-28  No'am Rosenthal  <noam@webkit.org>
421
422         [Texmap] Edge antialiasing in TextureMapper could be done with less per-pixel calls
423         https://bugs.webkit.org/show_bug.cgi?id=105377
424
425         Reviewed by Kenneth Rohde Christiansen.
426
427         Instead of passing 8 quad edge coefficients as uniforms and analyze the distance in the
428         fragment shader, we render the antialiased quad as 4 edge triangles, which originate in the
429         center of the quad. 
430
431         The vertex shader expands the quad based on the screen transform, and applies a value to each vertex to be interpolated by the GPU. 
432
433         It is very difficult to test performance gain; However, the following is apparent:
434         - The matrix multiplications and inversions done before in the quad inflation code were
435           always visible in instruments/valgrind and they are now gone.
436         - We now perform a single smoothstep() command per pixel instead of 8 clamp(dot()) commands.
437         - It should now be possible to antialias individual edges.
438
439         Covered by existing tests.
440
441         * platform/graphics/texmap/TextureMapperGL.cpp:
442         (WebCore::TextureMapperGLData::getStaticVBO):
443             Cache the unit-rect and edge-triangle vertex data in a VBO.
444
445         (WebCore::TextureMapperGLData::~TextureMapperGLData):
446             Clear the cached VBOs upon destruction.
447
448         (WebCore::TextureMapperGL::drawBorder):
449         (WebCore::TextureMapperGL::drawTexture):
450             Removed call to useProgram, since it's already called in drawTexturedQuadWithProgram.
451
452         (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
453         (WebCore::TextureMapperGL::drawSolidColor):
454             Use the new signature "draw" instead of "drawQuad".
455
456         (WebCore::TextureMapperGL::drawEdgeTriangles):
457         (WebCore::TextureMapperGL::drawUnitRect):
458         (WebCore::TextureMapperGL::draw):
459             Removed DrawQuad, instead draw either a unit rect or edge triangles.
460
461         (WebCore::TextureMapperGL::beginClip):
462             Use the new setMatrix function.
463
464         * platform/graphics/texmap/TextureMapperGL.h:
465             Added a paint flag for antialiasing.
466
467         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
468         (WebCore::TextureMapperShaderProgram::setMatrix):
469             Since we now set the matrix in multiple locations, added a convenience 
470             function for matrix uniform.
471
472         (WebCore::getShaderSpec):
473             Update the vertex and fragment shader to account for the new antialiasing
474             mechanism.
475         * platform/graphics/texmap/TextureMapperShaderManager.h:
476         (TextureMapperShaderProgram):
477
478 2012-12-28  Mark Rowe  <mrowe@apple.com>
479
480         Move logic for extracting the OS X marketing version in to WebCore
481         <http://webkit.org/b/105841> / <rdar://problem/10736041>
482
483         Reviewed by Dan Bernstein.
484
485         The logic for extracting the OS X markerting version is moved in to systemMarketingVersion
486         from WebKitSystemInterface (post-10.8) and WebKit (pre-10.8).
487
488         * WebCore.exp.in: Export systemMarketingVersion and remove the old WKSI symbol.
489         * WebCore.xcodeproj/project.pbxproj: Add the new files.
490         * platform/mac/SystemVersionMac.h: Added.
491         * platform/mac/SystemVersionMac.mm: Added.
492         (WebCore::createSystemMarketingVersion): Read the marketing version out of SystemVersion.plist
493         (WebCore::callGestalt):
494         (WebCore::createSystemMarketingVersion): Build the marketing version by piecing together the results
495         of calls to Gestalt.
496         (WebCore::systemMarketingVersion): Return the cached string.
497         * platform/mac/WebCoreSystemInterface.h: Remove the old WKSI symbol.
498         * platform/mac/WebCoreSystemInterface.mm: Ditto.
499
500 2012-12-28  Rafael Weinstein  <rafaelw@chromium.org>
501
502         [Templates]: Fix assert in colgroup parse handling
503         https://bugs.webkit.org/show_bug.cgi?id=105837
504
505         Reviewed by Eric Seidel.
506
507         Tests added to html5lib.
508
509         * html/parser/HTMLTreeBuilder.cpp:
510         (WebCore::HTMLTreeBuilder::processEndTag):
511
512 2012-12-28  Philippe Normand  <pnormand@igalia.com>
513
514         [GStreamer] GstMessage handler in AudioDestination
515         https://bugs.webkit.org/show_bug.cgi?id=105292
516
517         Reviewed by Martin Robinson.
518
519         Handle GStreamer warnings and errors coming from the playback
520         pipeline. For now we only display warnings on the console.
521
522         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
523         (WebCore::messageCallback):
524         (WebCore):
525         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
526         (WebCore::AudioDestinationGStreamer::finishBuildingPipelineAfterWavParserPadReady):
527         (WebCore::AudioDestinationGStreamer::handleMessage):
528         * platform/audio/gstreamer/AudioDestinationGStreamer.h:
529         (AudioDestinationGStreamer):
530
531 2012-12-28  Martin Robinson  <mrobinson@igalia.com>
532
533         [GTK][WK2] Add support for IME Composition
534         https://bugs.webkit.org/show_bug.cgi?id=65093
535
536         Reviewed by Carlos Garcia Campos.
537
538         No new tests. The GtkInputMethodFilter is covered by unit tests in TestWebKitAPI.
539         Doing functional tests for this behavior is much more complex.
540
541         * platform/gtk/GtkInputMethodFilter.cpp:
542         (WebCore::GtkInputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents): Now
543         pass along whether or not an event was faked.
544         * platform/gtk/GtkInputMethodFilter.h: Ditto.
545
546 2012-12-27  Emil A Eklund  <eae@chromium.org>
547
548         REGRESSION (r138196): Regions with text-overflow: ellipsis; are being ellipsized unnecessarily
549         https://bugs.webkit.org/show_bug.cgi?id=105600
550
551         Reviewed by Darin Adler.
552         
553         Pixel-snap lineBoxEdge before comparing with the block edge as
554         the lineBox edge isn't guaranteed to be snapped to device pixels
555         on all platforms.
556
557         Test: fast/sub-pixel/ellipsis-table.html
558
559         * rendering/RenderBlockLineLayout.cpp:
560         (WebCore::RenderBlock::checkLinesForTextOverflow):
561
562 2012-12-28  Brandon Jones  <bajones@chromium.org>
563
564         [chromium] DrawingBuffer initialization loop breaks if completely out of memory
565         https://bugs.webkit.org/show_bug.cgi?id=105732
566
567         Reviewed by Kenneth Russell.
568
569         When DrawingBuffer allocation fails because s_currentResourceUsePixels is maxed out
570         it now forces WebGLRenderingContext creation to fail gracefully.
571
572         * html/canvas/WebGLRenderingContext.cpp:
573         (WebCore::WebGLRenderingContext::create): On Chromium, check for failure to allocate a DrawingBuffer
574
575 2012-12-28  Dan Bernstein  <mitz@apple.com>
576
577         Slightly clean up WebCore's Base.xcconfig
578         https://bugs.webkit.org/show_bug.cgi?id=105808
579
580         Reviewed by Sam Weinig.
581
582         * Configurations/Base.xcconfig: Simplify the definition of GCC_GENERATE_DEBUGGING_SYMBOLS,
583         which is always YES.
584
585 2012-12-28  Rafael Weinstein  <rafaelw@chromium.org>
586
587         Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement
588         https://bugs.webkit.org/show_bug.cgi?id=105780
589
590         Reviewed by Eric Seidel.
591
592         This was regression was created by the HTMLTemplateElement implementation. The issue was a missed instance of
593         "fragment or template contents" case related to the parsing of colgroups.
594
595         * html/parser/HTMLTreeBuilder.cpp:
596         (WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
597         (WebCore::HTMLTreeBuilder::processStartTag):
598         (WebCore::HTMLTreeBuilder::processCharacterBuffer):
599         (WebCore::HTMLTreeBuilder::processEndOfFile):
600
601 2012-12-27  Vsevolod Vlasov  <vsevik@chromium.org>
602
603         Web Inspector: Introduce uri as a UISourceCode unique identifier in workspace.
604         https://bugs.webkit.org/show_bug.cgi?id=105799
605
606         Reviewed by Pavel Feldman.
607
608         Added uri field to UISourceCode. 
609         Debugger and LiveEdit uiSourceCodes are now created through WorkspaceProviders (not projects yet though)
610         which are responsible for unique uri generation. 
611         Extracted generic content provider based WorkspaceProvider functionality and url-to-uri conversion logic to ContentProviderWorkspaceProvider class.
612
613         * inspector/front-end/BreakpointManager.js:
614         (WebInspector.BreakpointManager.sourceFileId):
615         * inspector/front-end/CompilerScriptMapping.js:
616         * inspector/front-end/DebuggerScriptMapping.js:
617         (WebInspector.DebuggerScriptMapping):
618         * inspector/front-end/DefaultScriptMapping.js:
619         (WebInspector.DefaultScriptMapping):
620         (WebInspector.DefaultScriptMapping.prototype.addScript):
621         (WebInspector.DebuggerWorkspaceProvider):
622         (WebInspector.DebuggerWorkspaceProvider.prototype.addDebuggerFile):
623         * inspector/front-end/LiveEditSupport.js:
624         (WebInspector.LiveEditSupport):
625         (WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
626         (WebInspector.LiveEditWorkspaceProvider):
627         (WebInspector.LiveEditWorkspaceProvider.prototype.addLiveEditFile):
628         * inspector/front-end/NetworkUISourceCodeProvider.js:
629         (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
630         * inspector/front-end/NetworkWorkspaceProvider.js:
631         (WebInspector.ContentProviderWorkspaceProvider):
632         (WebInspector.ContentProviderWorkspaceProvider.uriForURL):
633         (WebInspector.ContentProviderWorkspaceProvider.prototype.addFile):
634         (WebInspector.ContentProviderWorkspaceProvider.prototype.uniqueURI):
635         (WebInspector.NetworkWorkspaceProvider):
636         (WebInspector.NetworkWorkspaceProvider.prototype.addNetworkFile):
637         * inspector/front-end/SASSSourceMapping.js:
638         (_bindUISourceCode):
639         * inspector/front-end/ScriptSnippetModel.js:
640         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
641         * inspector/front-end/TabbedEditorContainer.js:
642         (WebInspector.TabbedEditorContainer):
643         (WebInspector.TabbedEditorContainer.prototype._scrollChanged):
644         (WebInspector.TabbedEditorContainer.prototype._selectionChanged):
645         (WebInspector.TabbedEditorContainer.prototype._editorClosedByUserAction):
646         (WebInspector.TabbedEditorContainer.prototype._updateHistory.tabIdToURI):
647         (WebInspector.TabbedEditorContainer.prototype._updateHistory):
648         (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
649         (WebInspector.TabbedEditorContainer.prototype.reset):
650         * inspector/front-end/UISourceCode.js:
651         (WebInspector.UISourceCode):
652         (WebInspector.UISourceCode.prototype.uri):
653         * inspector/front-end/Workspace.js:
654         (WebInspector.FileDescriptor):
655         (WebInspector.Project.prototype._fileAdded):
656         (WebInspector.Project.prototype._fileRemoved):
657         (WebInspector.Project.prototype.uiSourceCodeForURI):
658         (WebInspector.Workspace):
659         (WebInspector.Workspace.prototype.uiSourceCodeForURI):
660         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
661         (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
662         (WebInspector.Workspace.prototype.requestFileContent):
663         (WebInspector.Workspace.prototype.setFileContent):
664         (WebInspector.Workspace.prototype.searchInFileContent):
665         (WebInspector.Workspace.prototype.reset):
666         * inspector/front-end/inspector.js:
667
668 2012-12-28  Yury Semikhatsky  <yurys@chromium.org>
669
670         Web Inspector: debugger should step into event handler on event dispatch
671         https://bugs.webkit.org/show_bug.cgi?id=105827
672
673         Reviewed by Pavel Feldman.
674
675         Added m_pauseInNextEventListener to InspectorDOMDebuggerAgent. The flag is set
676         to true when "step into" is pressed and reset to false when either JS execution
677         pauses, the agent gets disabled or JS call stack becomes empty. If the flag is
678         true and the next JS stetement to be executed belongs to a JS event listener we
679         will stop in that listener, otherwise we have two options:
680           1) Control flow directly(without comming through the native bindings) reaches some JS
681              statement and will pause in the corresponding JS function, in which case the
682              flag will be reset;
683           2) JS call stack becomes empty and execution will continue in the native code. We
684              use didProcessTask to detect such cases and reset the flag to false every time
685              event queue finishes next task.
686
687         Test: inspector/debugger/debugger-step-into-event-listener.html
688
689         * inspector/InspectorController.cpp:
690         (WebCore::InspectorController::InspectorController):
691         (WebCore::InspectorController::reportMemoryUsage):
692         (WebCore::InspectorController::didProcessTask):
693         * inspector/InspectorController.h:
694         (WebCore):
695         (InspectorController):
696         * inspector/InspectorDOMDebuggerAgent.cpp:
697         (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
698         (WebCore::InspectorDOMDebuggerAgent::stepInto):
699         (WebCore):
700         (WebCore::InspectorDOMDebuggerAgent::didPause):
701         (WebCore::InspectorDOMDebuggerAgent::cancelStepIntoEventListener):
702         (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
703         (WebCore::InspectorDOMDebuggerAgent::clear):
704         * inspector/InspectorDOMDebuggerAgent.h:
705         (InspectorDOMDebuggerAgent):
706         * inspector/InspectorDebuggerAgent.cpp:
707         (WebCore::InspectorDebuggerAgent::stepInto):
708         (WebCore::InspectorDebuggerAgent::didPause):
709         * inspector/InspectorDebuggerAgent.h:
710         (Listener):
711
712 2012-12-28  Andrey Lushnikov  <lushnikov@chromium.com>
713
714         Web Inspector: enable mutation observer in LayoutTests
715         https://bugs.webkit.org/show_bug.cgi?id=105826
716
717         Reviewed by Pavel Feldman.
718
719         Enable mutation observer in LayoutTests.
720
721         No new tests: no change in behaviour.
722
723         * inspector/front-end/DOMExtension.js:
724
725 2012-12-28  Philippe Normand  <pnormand@igalia.com>
726
727         [GTK] Some GStreamer-related files don't need to be in libWebCoreGTK
728         https://bugs.webkit.org/show_bug.cgi?id=105807
729
730         Reviewed by Martin Robinson.
731
732         * GNUmakefile.list.am: Move some modules not using GTK nor Cairo
733         to libWebCorePlatform.
734
735 2012-12-28  Yury Semikhatsky  <yurys@chromium.org>
736
737         Web Inspector: rename distanceToWindow to distance
738         https://bugs.webkit.org/show_bug.cgi?id=105823
739
740         Reviewed by Pavel Feldman.
741
742         Renamed distanceToWindow to distance. Introduced a method on HeapSnapshot
743         that allows to check if given node should be displayed to the user as having
744         distance 1.
745
746         * inspector/front-end/HeapSnapshot.js:
747         (WebInspector.HeapSnapshotEdge.prototype.serialize):
748         (WebInspector.HeapSnapshotRetainerEdge.prototype.serialize):
749         (WebInspector.HeapSnapshotNode.prototype.distance):
750         (WebInspector.HeapSnapshotNode.prototype.serialize):
751         (WebInspector.HeapSnapshot.prototype._init):
752         (WebInspector.HeapSnapshot.prototype.dispose):
753         (WebInspector.HeapSnapshot.prototype.canHaveDistanceOne):
754         (WebInspector.HeapSnapshot.prototype._calculateDistances):
755         (WebInspector.HeapSnapshot.prototype._bfs):
756         (WebInspector.HeapSnapshot.prototype._buildAggregates):
757         * inspector/front-end/HeapSnapshotDataGrids.js:
758         (WebInspector.HeapSnapshotRetainmentDataGrid):
759         (WebInspector.HeapSnapshotRetainmentDataGrid.prototype._sortFields):
760         (WebInspector.HeapSnapshotConstructorsDataGrid):
761         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._sortFields):
762         * inspector/front-end/HeapSnapshotGridNodes.js:
763         (WebInspector.HeapSnapshotGenericObjectNode):
764         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
765         (WebInspector.HeapSnapshotObjectNode):
766         (WebInspector.HeapSnapshotObjectNode.prototype.comparator):
767         (WebInspector.HeapSnapshotObjectNode.prototype._enhanceData):
768         (WebInspector.HeapSnapshotInstanceNode.prototype.comparator):
769         (WebInspector.HeapSnapshotConstructorNode):
770         (WebInspector.HeapSnapshotConstructorNode.prototype.comparator):
771         (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
772         * inspector/front-end/JSHeapSnapshot.js:
773         (WebInspector.JSHeapSnapshot.prototype.canHaveDistanceOne):
774
775 2012-12-28  Andrey Lushnikov  <lushnikov@chromium.com>
776
777         Web Inspector: refactor DefaultTextEditor's private methods
778         https://bugs.webkit.org/show_bug.cgi?id=105797
779
780         Reviewed by Pavel Feldman.
781
782         - Refactor private methods to public if they are called from external classes
783         - Get rid of external private variable access.
784
785         No tests: no change in behaviour.
786
787         * inspector/front-end/DefaultTextEditor.js:
788         (WebInspector.DefaultTextEditor.prototype.freeCachedElements):
789         (WebInspector.DefaultTextEditor.prototype._handleTextInput):
790         (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
791         (WebInspector.DefaultTextEditor.prototype._handleCut):
792         (WebInspector.DefaultTextEditor.prototype._contextMenu):
793         (WebInspector.DefaultTextEditor.prototype._handleScrollChanged):
794         (WebInspector.DefaultTextEditor.prototype.selection):
795         (WebInspector.DefaultTextEditor.prototype.lastSelection):
796         (WebInspector.DefaultTextEditor.prototype.setSelection):
797         (WebInspector.DefaultTextEditor.prototype.wasShown):
798         (WebInspector.DefaultTextEditor.prototype._handleFocused):
799         (WebInspector.DefaultTextEditor.prototype.willHide):
800         (WebInspector.DefaultTextEditor.prototype.highlightExpression):
801         (WebInspector.DefaultTextEditor.prototype.overrideViewportForTest):
802         (WebInspector.TextEditorChunkedPanel.prototype.buildChunks):
803         (WebInspector.TextEditorChunkedPanel.prototype.makeLineAChunk):
804         (WebInspector.TextEditorChunkedPanel.prototype.splitChunkOnALine):
805         (WebInspector.TextEditorChunkedPanel.prototype.createNewChunk):
806         (WebInspector.TextEditorChunkedPanel.prototype.scroll):
807         (WebInspector.TextEditorChunkedPanel.prototype._scheduleRepaintAll):
808         (WebInspector.TextEditorChunkedPanel.prototype.endUpdates):
809         (WebInspector.TextEditorChunkedPanel.prototype.chunkForLine):
810         (WebInspector.TextEditorChunkedPanel.prototype.findVisibleChunks):
811         (WebInspector.TextEditorChunkedPanel.prototype.repaintAll):
812         (WebInspector.TextEditorChunkedPanel.prototype.scrollTop):
813         (WebInspector.TextEditorChunkedPanel.prototype.clientHeight):
814         (WebInspector.TextEditorChunkedPanel.prototype.expandChunks):
815         (WebInspector.TextEditorChunkedPanel.prototype.totalHeight):
816         (WebInspector.TextEditorChunkedPanel.prototype.resize):
817         (WebInspector.TextEditorGutterPanel):
818         (WebInspector.TextEditorGutterPanel.prototype.freeCachedElements):
819         (WebInspector.TextEditorGutterPanel.prototype.createNewChunk):
820         (WebInspector.TextEditorGutterPanel.prototype.textChanged):
821         (WebInspector.TextEditorGutterChunk.prototype.get height):
822         (WebInspector.TextEditorMainPanel):
823         (WebInspector.TextEditorMainPanel.prototype.wasShown):
824         (WebInspector.TextEditorMainPanel.prototype.willHide):
825         (WebInspector.TextEditorMainPanel.prototype.highlightLine):
826         (WebInspector.TextEditorMainPanel.prototype.freeCachedElements):
827         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
828         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
829         (WebInspector.TextEditorMainPanel.prototype.splitChunkOnALine):
830         (WebInspector.TextEditorMainPanel.prototype.buildChunks):
831         (WebInspector.TextEditorMainPanel.prototype.createNewChunk):
832         (WebInspector.TextEditorMainPanel.prototype.expandChunks):
833         (WebInspector.TextEditorMainPanel.prototype._schedulePaintLines):
834         (WebInspector.TextEditorMainPanel.prototype._paintLines):
835         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
836         (WebInspector.TextEditorMainPanel.prototype.getSelection):
837         (WebInspector.TextEditorMainPanel.prototype.getLastSelection):
838         (WebInspector.TextEditorMainPanel.prototype.setLastSelection):
839         (WebInspector.TextEditorMainPanel.prototype.restoreSelection):
840         (WebInspector.TextEditorMainPanel.prototype._selectionToPosition):
841         (WebInspector.TextEditorMainPanel.prototype.enclosingLineRowOrSelf):
842         (WebInspector.TextEditorMainPanel.prototype._createLink):
843         (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
844         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
845         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
846         (WebInspector.TextEditorMainPanel.prototype._removeDecorationsInRange):
847         (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
848         (WebInspector.TextEditorMainPanel.prototype._updateHighlightsForRange):
849         (WebInspector.TextEditorMainPanel.prototype.handleSelectionChange):
850         (WebInspector.TextEditorMainPanel.prototype.handleTextInput):
851         (WebInspector.TextEditorMainPanel.prototype.handleKeyDown):
852         (WebInspector.TextEditorMainPanel.prototype.handleCut):
853         (WebInspector.TextEditorMainPanel.prototype.overrideViewportForTest):
854         (WebInspector.TextEditorMainChunk.prototype.get height):
855
856 2012-12-28  Kondapally Kalyan  <kalyan.kondapally@intel.com>
857
858         [EFL][WebGL] Add GLES2 support in GraphicsContext3DEfl.
859         https://bugs.webkit.org/show_bug.cgi?id=105805
860
861         Reviewed by Kenneth Rohde Christiansen.
862
863         This is in preparation for adding GLES2 support.
864         This patch adds OPENGL_ES_2 checks in GraphicsContext3DEFl.
865         With this patch, GraphicsContext3DPrivate uses the FramebufferBlit extension supported by Extensions3D.
866
867         * platform/graphics/GraphicsContext3D.h:
868         (GraphicsContext3D):
869         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
870         (WebCore::GraphicsContext3D::GraphicsContext3D):
871         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
872         (GraphicsContext3DPrivate::copyToGraphicsSurface):
873         * platform/graphics/opengl/GLDefs.h:
874
875 2012-12-27  Dimitri Glazkov  <dglazkov@chromium.org>
876
877         Fix styling/formatting errors, pointed out by Darin Adler while reviewing
878         https://bugs.webkit.org/show_bug.cgi?id=105752
879
880         No functional changes, thus no new tests.
881
882         * dom/VisitedLinkState.cpp:
883         (WebCore::VisitedLinkState::VisitedLinkState): Fixed up constructor syntax.
884         (WebCore::linkHashForElement): Expanded abbreviation.
885
886 2012-12-27  Mike West  <mkwst@chromium.org>
887
888         Add context to the console message generated by Document::printNavigationErrorMessage.
889         https://bugs.webkit.org/show_bug.cgi?id=105774
890
891         Reviewed by Darin Adler.
892
893         When blocking frame navigations, we should give developers more
894         contextual detail about why the navigation has been blocked. This patch
895         adds context specifically for sandboxed frames', and gives a slightly
896         more detailed generic response for all other blockages.
897
898         No new tests; the changes to the error message are covered via
899         rebaselines to existing navigation tests.
900
901         * dom/Document.cpp:
902         (WebCore::printNavigationErrorMessage):
903         (WebCore::Document::canNavigate):
904             Pass in a 'reason' parameter when calling printNavigationErrorMessage
905             to report a blocked navigation.
906
907 2012-12-27  Dimitri Glazkov  <dglazkov@chromium.org>
908
909         Move visited link-checking (and caching) code out of SelectorChecker.
910         https://bugs.webkit.org/show_bug.cgi?id=105752
911
912         SelectorChecker knew too much about visited links and how links are stored in DOM. This change
913         moves the code to more relevant locations and moves the visited links cache all the way up to Document,
914         introducing VisitedLinkState class to manage the state of visited links.
915         Relanding without a null-ptr ref.
916
917         Reviewed by Antti Koivisto.
918
919         No change in behavior, covered by existing tests.
920
921         * CMakeLists.txt: Added VisitedLinkState to build system.
922         * GNUmakefile.list.am: Ditto.
923         * Target.pri: Ditto.
924         * WebCore.gypi: Ditto.
925         * WebCore.xcodeproj/project.pbxproj: Ditto.
926         * css/SelectorChecker.cpp: Moved visited-link state code out to VisitedLinkState class.
927         * css/SelectorChecker.h: Ditto.
928         * css/StyleResolver.cpp:
929         (WebCore::StyleResolver::initElement): Changed callsite to use VisitedLinkState.
930         * css/StyleResolver.h: Removed plumb-throughs that are now unnecessary.
931         * dom/DOMAllInOne.cpp: Added VisitedLinkState to build system.
932         * dom/Document.cpp: Added VisitedLinkState initalizer.
933         * dom/Document.h: Added VisitedLinkState member.
934         * dom/VisitedLinkState.cpp: Added.
935         * dom/VisitedLinkState.h: Added.
936         * history/CachedPage.cpp:
937         (WebCore::CachedPage::restore): Changed callsite to use VisitedLinkState.
938         * page/Page.cpp:
939         (WebCore::Page::allVisitedStateChanged): Ditto.
940         (WebCore::Page::visitedStateChanged): Ditto.
941
942 2012-12-27  Kondapally Kalyan  <kalyan.kondapally@intel.com>
943
944         [EFL][WebGL] Implement EGL support with GLX.
945         https://bugs.webkit.org/show_bug.cgi?id=105602
946
947         Reviewed by Kenneth Rohde Christiansen.
948
949         This is in preparation for adding GLES2 support.
950         This patch adds support for EGL with GLX backend. EGL support can be enabled during compile time
951         by passing -DENABLE_EGL=ON as cmake config parameter. This is disabled by default.
952
953         * PlatformEfl.cmake:
954         * platform/graphics/opengl/GLDefs.h:
955         (WebCore):
956         * platform/graphics/opengl/GLPlatformContext.cpp:
957         (WebCore):
958         (WebCore::GLPlatformContext::createContext): Added GLX checks.
959         (WebCore::GLPlatformContext::createOffScreenContext): Added support for creating EGLOffscreen Context.
960         (WebCore::GLPlatformContext::createCurrentContextWrapper): Added support for creating EGLCurrentContextWrapper.
961         * platform/graphics/opengl/GLPlatformContext.h:
962         * platform/graphics/opengl/GLPlatformSurface.cpp:
963         (WebCore::GLPlatformSurface::createTransportSurface): Added support for creating EGLSurface.
964
965         * platform/graphics/surfaces/egl/EGLContext.cpp: Added.
966         (WebCore):
967         (WebCore::isRobustnessExtSupported):
968         (WebCore::EGLCurrentContextWrapper::EGLCurrentContextWrapper):
969         (WebCore::EGLCurrentContextWrapper::handle):
970         (WebCore::EGLOffScreenContext::EGLOffScreenContext):
971         (WebCore::EGLOffScreenContext::initialize):
972         (WebCore::EGLOffScreenContext::~EGLOffScreenContext):
973         (WebCore::EGLOffScreenContext::isCurrentContext):
974         (WebCore::EGLOffScreenContext::platformMakeCurrent):
975         (WebCore::EGLOffScreenContext::platformReleaseCurrent):
976         (WebCore::EGLOffScreenContext::freeResources):
977         (WebCore::EGLOffScreenContext::destroy):
978         * platform/graphics/surfaces/egl/EGLContext.h:
979         (WebCore):
980         (EGLCurrentContextWrapper):
981         (WebCore::EGLCurrentContextWrapper::~EGLCurrentContextWrapper):
982         (EGLOffScreenContext):
983
984         EGL implementation for Context Management.
985
986         * platform/graphics/surfaces/egl/EGLSurface.cpp: Added.
987         (WebCore):
988         (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
989         (WebCore::EGLWindowTransportSurface::~EGLWindowTransportSurface):
990         (WebCore::EGLWindowTransportSurface::configuration):
991         (WebCore::EGLWindowTransportSurface::swapBuffers):
992         (WebCore::EGLWindowTransportSurface::destroy):
993         (WebCore::EGLWindowTransportSurface::freeEGLResources):
994         * platform/graphics/surfaces/egl/EGLSurface.h:
995         (WebCore):
996         (EGLWindowTransportSurface):
997
998         EGL implementation for Offscreen Surface. The surface is backed by native window.
999
1000         * platform/graphics/surfaces/egl/EGLConfigHelper.cpp: Added.
1001         (WebCore):
1002         (WebCore::SharedEGLDisplay::deref):
1003         (WebCore::SharedEGLDisplay::sharedEGLDisplay):
1004         (WebCore::SharedEGLDisplay::SharedEGLDisplay):
1005         (WebCore::SharedEGLDisplay::cleanup):
1006         (WebCore::SharedEGLDisplay::~SharedEGLDisplay):
1007         (WebCore::EGLConfigHelper::EGLConfigHelper):
1008         (WebCore::EGLConfigHelper::~EGLConfigHelper):
1009         (WebCore::EGLConfigHelper::display):
1010         (WebCore::EGLConfigHelper::pBufferContextConfig):
1011         (WebCore::EGLConfigHelper::surfaceContextConfig):
1012         (WebCore::EGLConfigHelper::nativeVisualId):
1013         (WebCore::EGLConfigHelper::reset):
1014         (WebCore::EGLConfigHelper::createConfig):
1015
1016         Helper class to initialize EGL resources and choose right EGL configuration.
1017
1018 2012-12-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1019
1020         Unreviewed, rolling out r138509.
1021         http://trac.webkit.org/changeset/138509
1022         https://bugs.webkit.org/show_bug.cgi?id=105806
1023
1024         Caused several tests to crash (Requested by fsamuel on
1025         #webkit).
1026
1027         * CMakeLists.txt:
1028         * GNUmakefile.list.am:
1029         * Target.pri:
1030         * WebCore.gypi:
1031         * WebCore.xcodeproj/project.pbxproj:
1032         * css/SelectorChecker.cpp:
1033         (WebCore::linkAttribute):
1034         (WebCore):
1035         (WebCore::SelectorChecker::determineLinkStateSlowCase):
1036         (WebCore::SelectorChecker::allVisitedStateChanged):
1037         (WebCore::SelectorChecker::visitedStateChanged):
1038         * css/SelectorChecker.h:
1039         (SelectorChecker):
1040         (WebCore::SelectorChecker::determineLinkState):
1041         (WebCore):
1042         * css/StyleResolver.cpp:
1043         (WebCore::StyleResolver::initElement):
1044         * css/StyleResolver.h:
1045         (WebCore::StyleResolver::allVisitedStateChanged):
1046         (WebCore::StyleResolver::visitedStateChanged):
1047         (StyleResolver):
1048         * dom/DOMAllInOne.cpp:
1049         * dom/Document.cpp:
1050         (WebCore::Document::Document):
1051         * dom/Document.h:
1052         (WebCore):
1053         (Document):
1054         * dom/VisitedLinkState.cpp: Removed.
1055         * dom/VisitedLinkState.h: Removed.
1056         * history/CachedPage.cpp:
1057         (WebCore::CachedPage::restore):
1058         * page/Page.cpp:
1059         (WebCore::Page::allVisitedStateChanged):
1060         (WebCore::Page::visitedStateChanged):
1061
1062 2012-12-27  Dimitri Glazkov  <dglazkov@chromium.org>
1063
1064         Move visited link-checking (and caching) code out of SelectorChecker.
1065         https://bugs.webkit.org/show_bug.cgi?id=105752
1066
1067         SelectorChecker knew too much about visited links and how links are stored in DOM. This change
1068         moves the code to more relevant locations and moves the visited links cache all the way up to Document,
1069         introducing VisitedLinkState class to manage the state of visited links.
1070
1071         Reviewed by Antti Koivisto.
1072
1073         No change in behavior, covered by existing tests.
1074
1075         * CMakeLists.txt: Added VisitedLinkState to build system.
1076         * GNUmakefile.list.am: Ditto.
1077         * Target.pri: Ditto.
1078         * WebCore.gypi: Ditto.
1079         * WebCore.xcodeproj/project.pbxproj: Ditto.
1080         * css/SelectorChecker.cpp: Moved visited-link state code out to VisitedLinkState class.
1081         * css/SelectorChecker.h: Ditto.
1082         * css/StyleResolver.cpp:
1083         (WebCore::StyleResolver::initElement): Changed callsite to use VisitedLinkState.
1084         * css/StyleResolver.h: Removed plumb-throughs that are now unnecessary.
1085         * dom/DOMAllInOne.cpp: Added VisitedLinkState to build system.
1086         * dom/Document.cpp: Added VisitedLinkState initalizer.
1087         * dom/Document.h: Added VisitedLinkState member.
1088         * dom/VisitedLinkState.cpp: Added.
1089         * dom/VisitedLinkState.h: Added.
1090         * history/CachedPage.cpp:
1091         (WebCore::CachedPage::restore): Changed callsite to use VisitedLinkState.
1092         * page/Page.cpp:
1093         (WebCore::Page::allVisitedStateChanged): Ditto.
1094         (WebCore::Page::visitedStateChanged): Ditto.
1095
1096 2012-12-27  Huang Dongsung  <luxtella@company100.net>
1097
1098         [TexMap] Minor refactoring of TextureMapperLayer.
1099         https://bugs.webkit.org/show_bug.cgi?id=105782
1100
1101         Reviewed by Darin Adler.
1102
1103         This patch has two refactorings.
1104         1. Replace TextureMapperPaintOptions from header to implementation file.
1105         2. Add non copyable property to TextureMapperLayer.
1106
1107         No new tests. Refactoring only.
1108
1109         * platform/graphics/texmap/TextureMapperLayer.cpp:
1110         (TextureMapperPaintOptions):
1111         (WebCore::TextureMapperPaintOptions::TextureMapperPaintOptions):
1112         (WebCore):
1113         * platform/graphics/texmap/TextureMapperLayer.h:
1114         (WebCore):
1115         (TextureMapperLayer):
1116
1117 2012-12-27  Yury Semikhatsky  <yurys@chromium.org>
1118
1119        Unreviewed. Use real worker in heap profiler instead of the fake one
1120        (was accidentally switched to the fake worker).
1121
1122         * inspector/front-end/HeapSnapshotProxy.js:
1123         (WebInspector.HeapSnapshotWorker):
1124
1125 2012-12-27  Vsevolod Vlasov  <vsevik@chromium.org>
1126
1127         Web Inspector: [Regression] Can not set breakpoints in scripts loaded with source map.
1128         https://bugs.webkit.org/show_bug.cgi?id=105801
1129
1130         Reviewed by Alexander Pavlov.
1131
1132         ResourceScriptMapping now pushes itself to script's source mappings in addScript method.
1133         Binding script to uiSourceCode loaded later is only triggering updateLocations() now.
1134
1135         * inspector/front-end/ResourceScriptMapping.js:
1136         (WebInspector.ResourceScriptMapping.prototype.addScript):
1137         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
1138         * inspector/front-end/Script.js:
1139         (WebInspector.Script.prototype.disableSourceMapping):
1140         (WebInspector.Script.prototype.enableSourceMapping):
1141         (WebInspector.Script.prototype.pushSourceMapping):
1142         (WebInspector.Script.prototype.popSourceMapping):
1143         (WebInspector.Script.prototype.updateLocations):
1144
1145 2012-12-27  Yury Semikhatsky  <yurys@chromium.org>
1146
1147         Web Inspector: remove support for legacy heap graph node format
1148         https://bugs.webkit.org/show_bug.cgi?id=105802
1149
1150         Reviewed by Pavel Feldman.
1151
1152         Removed support for old heap graph node format: we now always store edge count
1153         in each node instead of the first edge index.
1154
1155         * inspector/front-end/HeapSnapshot.js:
1156         (WebInspector.HeapSnapshot.prototype._buildEdgeIndexes):
1157
1158 2012-12-27  Yury Semikhatsky  <yurys@chromium.org>
1159
1160         Web Inspector: move js heap snapshot preprocessing to JSHeapSnapshot
1161         https://bugs.webkit.org/show_bug.cgi?id=105798
1162
1163         Reviewed by Pavel Feldman.
1164
1165         HeapSnapshot.js refactorings:
1166         - moved _markInvisibleEdges implementation into JSHeapSnapshot
1167         - moved _calculateFlags implementation into JSHeapSnapshot
1168         - moved _flags array into JSHeapSnapshot
1169         - instead of returning node flags as a field on each node, requesting
1170           snapshot node flag constants from the heap snapshot worker and then
1171           checking for the flags in HeapSnapshotGridNodes now return two optional
1172           boolean fields on each node: canBeQueried and detachedDOMTreeNode
1173         - removed unused propertyAccessor property from serialized heap node
1174         - moved node and edge serialization from providers to the node and edge
1175           classes, js specific fields are serialized only for JSHeapSnapshotNode
1176         - renamed first() to rewind() on providers and iterators
1177
1178         * inspector/front-end/HeapSnapshot.js:
1179         (WebInspector.HeapSnapshotEdge.prototype.serialize):
1180         (WebInspector.HeapSnapshotEdgeIterator.prototype.rewind):
1181         (WebInspector.HeapSnapshotRetainerEdge.prototype.serialize):
1182         (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.rewind):
1183         (WebInspector.HeapSnapshotNode.prototype.isUserObject):
1184         (WebInspector.HeapSnapshotNode.prototype.serialize):
1185         (WebInspector.HeapSnapshotNodeIterator.prototype.rewind):
1186         (WebInspector.HeapSnapshot.prototype._init):
1187         (WebInspector.HeapSnapshot.prototype._buildAggregates):
1188         (WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
1189         (WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
1190         (WebInspector.HeapSnapshot.prototype._buildDominatorTree):
1191         (WebInspector.HeapSnapshot.prototype._markInvisibleEdges):
1192         (WebInspector.HeapSnapshot.prototype._calculateFlags):
1193         (WebInspector.HeapSnapshot.prototype.userObjectsMapAndFlag):
1194         (WebInspector.HeapSnapshot.prototype.):
1195         (WebInspector.HeapSnapshot.prototype.createNodesProviderForClass):
1196         (WebInspector.HeapSnapshot.prototype.updateStaticData):
1197         (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype._createIterationOrder):
1198         (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.rewind):
1199         (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.isEmpty):
1200         (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.serializeItemsRange):
1201         (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.sortAndRewind):
1202         * inspector/front-end/HeapSnapshotGridNodes.js:
1203         (WebInspector.HeapSnapshotGenericObjectNode):
1204         (WebInspector.HeapSnapshotObjectNode):
1205         * inspector/front-end/HeapSnapshotProxy.js:
1206         * inspector/front-end/JSHeapSnapshot.js:
1207         (WebInspector.JSHeapSnapshot):
1208         (WebInspector.JSHeapSnapshot.prototype._markInvisibleEdges):
1209         (WebInspector.JSHeapSnapshot.prototype._calculateFlags):
1210         (WebInspector.JSHeapSnapshot.prototype.userObjectsMapAndFlag):
1211         (WebInspector.JSHeapSnapshot.prototype._flagsOfNode):
1212         (WebInspector.JSHeapSnapshot.prototype._markDetachedDOMTreeNodes):
1213         (WebInspector.JSHeapSnapshot.prototype._markQueriableHeapObjects):
1214         (WebInspector.JSHeapSnapshot.prototype._markPageOwnedNodes):
1215         (WebInspector.JSHeapSnapshotNode.prototype.isUserObject):
1216         (WebInspector.JSHeapSnapshotNode.prototype.serialize):
1217
1218 2012-12-27  Alexander Pavlov  <apavlov@chromium.org>
1219
1220         Web Inspector: Refactor SourceMapParser to enable range-based sourcemap
1221         https://bugs.webkit.org/show_bug.cgi?id=105764
1222
1223         Reviewed by Vsevolod Vlasov.
1224
1225         Test: inspector/styles/range-based-mapping.html
1226
1227         * WebCore.gypi:
1228         * WebCore.vcproj/WebCore.vcproj:
1229         * inspector/compile-front-end.py:
1230         * inspector/front-end/CompilerScriptMapping.js:
1231         (WebInspector.CompilerScriptMapping):
1232         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
1233         * inspector/front-end/SourceMap.js: Copied from Source/WebCore/inspector/front-end/CompilerScriptMapping.js.
1234         (WebInspector.SourceMap):
1235           Abstract. Renamed from SourceMapParser and supports only direct (generated -> originating source) mapping via findEntry()
1236         (WebInspector.SourceMap.prototype.sources):
1237         (WebInspector.SourceMap.prototype.sourceContent):
1238         (WebInspector.SourceMap.prototype._parseMappingPayload):
1239         (WebInspector.SourceMap.prototype._parseSections):
1240         (WebInspector.SourceMap.prototype._parseMap):
1241         (WebInspector.SourceMap.prototype._isSeparator):
1242         (WebInspector.SourceMap.prototype._decodeVLQ):
1243         (WebInspector.SourceMap.prototype._canonicalizeURL):
1244         (WebInspector.SourceMap.StringCharIterator):
1245         (WebInspector.SourceMap.StringCharIterator.prototype.next):
1246         (WebInspector.SourceMap.StringCharIterator.prototype.peek):
1247         (WebInspector.SourceMap.StringCharIterator.prototype.hasNext):
1248         (WebInspector.PositionBasedSourceMap):
1249           Extends SourceMap and provides direct (compiled -> original source)
1250           and reverse (original -> compiled source) position mapping via findEntryReversed().
1251         (WebInspector.PositionBasedSourceMap.prototype.findEntry):
1252         (WebInspector.PositionBasedSourceMap.prototype.findEntryReversed):
1253         (WebInspector.PositionBasedSourceMap.prototype._parseMap):
1254         (WebInspector.RangeBasedSourceMap):
1255           Extends SourceMap and provides direct range mapping
1256           (compiled source position -> original source range) via findSourceRange().
1257         (WebInspector.RangeBasedSourceMap.MappingComparator):
1258         (WebInspector.RangeBasedSourceMap.prototype.findSourceRange):
1259         (WebInspector.RangeBasedSourceMap.prototype._rangeForStartIndex):
1260         (WebInspector.SourceRange):
1261         * inspector/front-end/WebKit.qrc:
1262         * inspector/front-end/inspector.html:
1263
1264 2012-12-25  Andrey Adaikin  <aandrey@chromium.org>
1265
1266         Web Inspector: [Canvas] report if there is any uninstrumented canvas on a page
1267         https://bugs.webkit.org/show_bug.cgi?id=105721
1268
1269         Reviewed by Yury Semikhatsky.
1270
1271         Adding a method to the protocol to report if there is any uninstrumented canvas on a page.
1272
1273         Test: inspector/profiler/canvas2d/canvas-has-uninstrumented-canvases.html
1274
1275         * inspector/InjectedScriptCanvasModuleSource.js:
1276         (.):
1277         * inspector/Inspector.json:
1278         * inspector/InspectorCanvasAgent.cpp:
1279         (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
1280         (WebCore::InspectorCanvasAgent::enable):
1281         (WebCore::InspectorCanvasAgent::disable):
1282         (WebCore::InspectorCanvasAgent::hasUninstrumentedCanvases):
1283         (WebCore):
1284         (WebCore::InspectorCanvasAgent::captureFrame):
1285         (WebCore::InspectorCanvasAgent::startCapturing):
1286         (WebCore::InspectorCanvasAgent::stopCapturing):
1287         (WebCore::InspectorCanvasAgent::getTraceLog):
1288         (WebCore::InspectorCanvasAgent::replayTraceLog):
1289         (WebCore::InspectorCanvasAgent::ensureHasUninstrumentedCanvasesCalculated):
1290         (WebCore::InspectorCanvasAgent::checkIsEnabled):
1291         (WebCore::InspectorCanvasAgent::reset):
1292         * inspector/InspectorCanvasAgent.h:
1293         (WebCore):
1294         (InspectorCanvasAgent):
1295         * inspector/InspectorInstrumentation.cpp:
1296         (WebCore):
1297         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
1298
1299 2012-12-27  Vsevolod Vlasov  <vsevik@chromium.org>
1300
1301         Web Inspector: Simplify script mappings by introducing DefaultScriptMapping.
1302         https://bugs.webkit.org/show_bug.cgi?id=103038
1303
1304         Reviewed by Pavel Feldman.
1305
1306         DefaultScriptMapping creates a uiSourceCode for each script and set itself as a mapping for the script.
1307         Script can now have a stack of (possibly disabled) mappings, allowing to try several mappings when calculating uiLocation.
1308         LiveEditSupport object is added on WebInspector to support live editing of readonly DefaultScriptMapping's uiSourceCodes.
1309         DefaultScriptMapping is now the only mapping that creates temporary uiSourceCodes.
1310
1311         * English.lproj/localizedStrings.js:
1312         * WebCore.gypi:
1313         * WebCore.vcproj/WebCore.vcproj:
1314         * inspector/compile-front-end.py:
1315         * inspector/front-end/BreakpointManager.js:
1316         (WebInspector.BreakpointManager):
1317         (WebInspector.BreakpointManager.sourceFileId):
1318         (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
1319         * inspector/front-end/CompilerScriptMapping.js:
1320         (WebInspector.CompilerScriptMapping):
1321         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
1322         (WebInspector.CompilerScriptMapping.prototype.uiLocationToRawLocation):
1323         (WebInspector.CompilerScriptMapping.prototype._reset):
1324         * inspector/front-end/DebuggerModel.js:
1325         (WebInspector.DebuggerModel.prototype._parsedScriptSource):
1326         * inspector/front-end/DebuggerScriptMapping.js:
1327         (WebInspector.DebuggerScriptMapping):
1328         * inspector/front-end/DefaultScriptMapping.js: Added.
1329         * inspector/front-end/LiveEditSupport.js: Added.
1330         * inspector/front-end/ResourceScriptMapping.js:
1331         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
1332         (WebInspector.ResourceScriptMapping.prototype.addScript):
1333         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
1334         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
1335         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
1336         (WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript):
1337         (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode):
1338         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
1339         (WebInspector.ResourceScriptMapping.prototype._reset):
1340         * inspector/front-end/Script.js:
1341         (WebInspector.Script):
1342         (WebInspector.Script.prototype.):
1343         (WebInspector.Script.prototype.editSource):
1344         (WebInspector.Script.prototype.setIsDynamicScript):
1345         (WebInspector.Script.prototype.isDynamicScript):
1346         (WebInspector.Script.prototype.rawLocationToUILocation):
1347         (WebInspector.Script.prototype._enabledSourceMappings):
1348         (WebInspector.Script.prototype._sourceMappingsDiffer):
1349         (WebInspector.Script.prototype.disableSourceMapping):
1350         (WebInspector.Script.prototype.enableSourceMapping):
1351         (WebInspector.Script.prototype.pushSourceMapping):
1352         (WebInspector.Script.prototype.popSourceMapping):
1353         (WebInspector.Script.prototype._updateLocations):
1354         (WebInspector.Script.prototype.createLiveLocation):
1355         * inspector/front-end/ScriptSnippetModel.js:
1356         (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
1357         * inspector/front-end/ScriptsPanel.js:
1358         (WebInspector.ScriptsPanel.prototype._addUISourceCode):
1359         (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
1360         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
1361         * inspector/front-end/WebKit.qrc:
1362         * inspector/front-end/Workspace.js:
1363         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
1364         * inspector/front-end/inspector.html:
1365         * inspector/front-end/inspector.js:
1366
1367 2012-12-27  Eugene Klyuchnikov  <eustas@chromium.org>
1368
1369         Web Inspector: console.profileEnd() crashes if called without arguments
1370         https://bugs.webkit.org/show_bug.cgi?id=105759
1371
1372         Reviewed by Vsevolod Vlasov.
1373
1374         Test: inspector/profiler/cpu-profiler-parameterless-profile-end-crash.html
1375
1376         API allows to finish profile without specifying its name.
1377         Profiler tracks profiles stack and finishes outermost profile.
1378         Finished profile title will be used instead of user-specified one.
1379
1380         * bindings/v8/ScriptProfiler.cpp:
1381         (WebCore::ScriptProfiler::stop): Use title provided by profiler.
1382
1383 2012-12-26  No'am Rosenthal  <noam@webkit.org>
1384
1385         [Texmap] Instead of having multiple shaders sources with lots of duplication, we should have one shader source with MACRO variants
1386         https://bugs.webkit.org/show_bug.cgi?id=104815
1387
1388         Reviewed by Kenneth Rohde Christiansen.
1389
1390         Created templates for the vertex and fragment shaders, and added some MACROs in 
1391         TextureMapperShaderManager to allow GLSL precompiler-based configuration.
1392
1393         The template follows a pattern where the main function in the shader calls
1394         applyFooBarIfNeeded(), while applyFooBar() is implemented. The Macros prepended to the template define whether applyIfNeeded resolves to the real function or to a noop.
1395
1396         In addition, made some small changes to the filter shaders so that they can use the same code as the normal shaders.
1397
1398         Covered by existing pixel/ref tests when run on Qt/EFL/GTK.
1399
1400         * platform/graphics/texmap/TextureMapperGL.cpp:
1401         (WebCore::TextureMapperGL::drawTexture):
1402         (WebCore::TextureMapperGL::drawSolidColor):
1403         (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
1404         (WebCore::optionsForFilterType):
1405         (WebCore):
1406         (WebCore::getPassesRequiredForFilter):
1407         (WebCore::prepareFilterProgram):
1408         (WebCore::TextureMapperGL::drawFiltered):
1409         (WebCore::BitmapTextureGL::applyFilters):
1410             Always draw using the drawQuad function, and use the new TextureMapperShaderManager::Options mask instead of the old ShaderKey.
1411
1412         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
1413         (WebCore):
1414         (WebCore::getShaderSpec):
1415         (WebCore::TextureMapperShaderManager::getShaderProgram):
1416         * platform/graphics/texmap/TextureMapperShaderManager.h:
1417         (TextureMapperShaderProgram):
1418         (TextureMapperShaderManager):
1419
1420 2012-12-26  Huang Dongsung  <luxtella@company100.net>
1421
1422         [TexMap] A Minor optimization of GraphicsLayerTransform.
1423         https://bugs.webkit.org/show_bug.cgi?id=105758
1424
1425         Reviewed by Noam Rosenthal.
1426
1427         Only multiply the transformation matrices if the paramaters are actually
1428         changed.
1429
1430         This optimizes the code path called from flushCompositingStateForThisLayerOnly(),
1431         and potentially setAnimatedTransform().
1432
1433         No new tests. Refactoring only.
1434
1435         * platform/graphics/GraphicsLayerTransform.cpp:
1436         (WebCore::GraphicsLayerTransform::setPosition):
1437         (WebCore::GraphicsLayerTransform::setSize):
1438         (WebCore::GraphicsLayerTransform::setAnchorPoint):
1439         (WebCore::GraphicsLayerTransform::setFlattening):
1440         (WebCore::GraphicsLayerTransform::setLocalTransform):
1441         (WebCore::GraphicsLayerTransform::setChildrenTransform):
1442
1443 2012-12-26  Huang Dongsung  <luxtella@company100.net>
1444
1445         [TexMap] Remove unused members and methods in TextureMapperLayer.
1446         https://bugs.webkit.org/show_bug.cgi?id=105755
1447
1448         Reviewed by Noam Rosenthal.
1449
1450         No new tests. Refactoring only.
1451
1452         * platform/graphics/texmap/TextureMapperLayer.h:
1453         (TextureMapperLayer):
1454         (State):
1455         (WebCore::TextureMapperLayer::State::State):
1456
1457 2012-12-26  Andreas Kling  <akling@apple.com>
1458
1459         [Mac] MemoryPressureHandler: Occasional crashes in uninstall() when responding to memory pressure signal.
1460         <http://webkit.org/b/105772>
1461
1462         Reviewed by Stephanie Lewis.
1463
1464         We can't synchronously dereference _cache_event_source in uninstall() just because m_installed
1465         is true -- the block that initializes _cache_event_source is asynchronous and may not have executed.
1466         Fix this by performing the uninstallation asynchronously on the main queue as well.
1467
1468         * platform/mac/MemoryPressureHandlerMac.mm:
1469         (WebCore::MemoryPressureHandler::uninstall):
1470
1471 2012-12-26  Sheriff Bot  <webkit.review.bot@gmail.com>
1472
1473         Unreviewed, rolling out r137905.
1474         http://trac.webkit.org/changeset/137905
1475         https://bugs.webkit.org/show_bug.cgi?id=105765
1476
1477         Popover does not disappear when hovering another identifier in
1478         sources panel. (Requested by vsevik on #webkit).
1479
1480         * inspector/front-end/Popover.js:
1481         (WebInspector.Popover.prototype._innerShow):
1482         * inspector/front-end/popover.css:
1483         (.popover):
1484
1485 2012-12-26  Eugene Klyuchnikov  <eustas@chromium.org>
1486
1487         Web Inspector: [Resources] Table lose focus (selection) after deleting cookie.
1488         https://bugs.webkit.org/show_bug.cgi?id=105716
1489
1490         Reviewed by Yury Semikhatsky.
1491
1492         This makes deletion of a set of cookies (using keyboard) painful.
1493
1494         * inspector/front-end/CookieItemsView.js: Call method instead of getter.
1495         * inspector/front-end/CookiesTable.js: Remember and use next selected
1496         cookie value.
1497
1498 2012-12-26  Yury Semikhatsky  <yurys@chromium.org>
1499
1500         Web Inspector: extract JS heap profiler specifics into JSHeapSnapshot.js
1501         https://bugs.webkit.org/show_bug.cgi?id=105768
1502
1503         Reviewed by Pavel Feldman.
1504
1505         Inroduced JSHeapSnapshot, JSHeapSnapshotNode, JSHeapSnapshotEdge and JSHeapSnapshotRetainerEdge which
1506         should encapsulate logic specific to JS-heap.
1507         No behavioral changes, covered with existing heap profiler tests.
1508
1509         * WebCore.gypi:
1510         * WebCore.vcproj/WebCore.vcproj:
1511         * inspector/compile-front-end.py:
1512         * inspector/front-end/HeapSnapshot.js:
1513         (WebInspector.HeapSnapshotEdge.prototype.hasStringName):
1514         (WebInspector.HeapSnapshotEdge.prototype.name):
1515         (WebInspector.HeapSnapshotEdge.prototype.node):
1516         (WebInspector.HeapSnapshotEdge.prototype.toString):
1517         (WebInspector.HeapSnapshotRetainerEdge.prototype._node):
1518         (WebInspector.HeapSnapshotRetainerEdge.prototype._edge):
1519         (WebInspector.HeapSnapshotNode.prototype.className):
1520         (WebInspector.HeapSnapshotNode.prototype.classIndex):
1521         (WebInspector.HeapSnapshotNode.prototype.edges):
1522         (WebInspector.HeapSnapshotNode.prototype.id):
1523         (WebInspector.HeapSnapshotNode.prototype.retainers):
1524         (WebInspector.HeapSnapshot.prototype.createNode):
1525         (WebInspector.HeapSnapshot.prototype.createEdge):
1526         (WebInspector.HeapSnapshot.prototype.createRetainingEdge):
1527         (WebInspector.HeapSnapshot.prototype.rootNode):
1528         (WebInspector.HeapSnapshot.prototype.aggregatesForDiff):
1529         (WebInspector.HeapSnapshot.prototype._buildAggregates):
1530         (WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
1531         (WebInspector.HeapSnapshot.prototype._sortAggregateIndexes):
1532         (WebInspector.HeapSnapshot.prototype._calculateDiffForClass):
1533         (WebInspector.HeapSnapshot.prototype.createEdgesProvider):
1534         (WebInspector.HeapSnapshot.prototype.createRetainingEdgesProvider):
1535         (WebInspector.HeapSnapshot.prototype.createNodesProviderForDominator):
1536         (WebInspector.HeapSnapshotNodesProvider.prototype.nodePosition):
1537         * inspector/front-end/HeapSnapshotLoader.js:
1538         (WebInspector.HeapSnapshotLoader.prototype.buildSnapshot):
1539         * inspector/front-end/HeapSnapshotProxy.js:
1540         (WebInspector.HeapSnapshotWorker):
1541         * inspector/front-end/HeapSnapshotWorker.js:
1542         * inspector/front-end/JSHeapSnapshot.js: Added.
1543         (WebInspector.JSHeapSnapshot):
1544         (WebInspector.JSHeapSnapshot.prototype.createNode):
1545         (WebInspector.JSHeapSnapshot.prototype.createEdge):
1546         (WebInspector.JSHeapSnapshot.prototype.createRetainingEdge):
1547         (WebInspector.JSHeapSnapshotNode):
1548         (WebInspector.JSHeapSnapshotNode.prototype.canBeQueried):
1549         (WebInspector.JSHeapSnapshotNode.prototype.isPageObject):
1550         (WebInspector.JSHeapSnapshotNode.prototype.distanceToWindow):
1551         (WebInspector.JSHeapSnapshotNode.prototype.className):
1552         (WebInspector.JSHeapSnapshotNode.prototype.classIndex):
1553         (WebInspector.JSHeapSnapshotNode.prototype.id):
1554         (WebInspector.JSHeapSnapshotNode.prototype.isHidden):
1555         (WebInspector.JSHeapSnapshotNode.prototype.isNative):
1556         (WebInspector.JSHeapSnapshotNode.prototype.isSynthetic):
1557         (WebInspector.JSHeapSnapshotNode.prototype.isWindow):
1558         (WebInspector.JSHeapSnapshotNode.prototype.isDetachedDOMTreesRoot):
1559         (WebInspector.JSHeapSnapshotNode.prototype.isDetachedDOMTree):
1560         (WebInspector.JSHeapSnapshotEdge):
1561         (WebInspector.JSHeapSnapshotEdge.prototype.clone):
1562         (WebInspector.JSHeapSnapshotEdge.prototype.hasStringName):
1563         (WebInspector.JSHeapSnapshotEdge.prototype.isElement):
1564         (WebInspector.JSHeapSnapshotEdge.prototype.isHidden):
1565         (WebInspector.JSHeapSnapshotEdge.prototype.isWeak):
1566         (WebInspector.JSHeapSnapshotEdge.prototype.isInternal):
1567         (WebInspector.JSHeapSnapshotEdge.prototype.isInvisible):
1568         (WebInspector.JSHeapSnapshotEdge.prototype.isShortcut):
1569         (WebInspector.JSHeapSnapshotEdge.prototype.name):
1570         (WebInspector.JSHeapSnapshotEdge.prototype.toString):
1571         (WebInspector.JSHeapSnapshotEdge.prototype._hasStringName):
1572         (WebInspector.JSHeapSnapshotEdge.prototype._name):
1573         (WebInspector.JSHeapSnapshotEdge.prototype._nameOrIndex):
1574         (WebInspector.JSHeapSnapshotEdge.prototype._type):
1575         (WebInspector.JSHeapSnapshotRetainerEdge):
1576         (WebInspector.JSHeapSnapshotRetainerEdge.prototype.clone):
1577         (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isElement):
1578         (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isHidden):
1579         (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isInternal):
1580         (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isInvisible):
1581         (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isShortcut):
1582         (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isWeak):
1583         * inspector/front-end/ProfilesPanel.js:
1584         * inspector/front-end/WebKit.qrc:
1585
1586 2012-12-26  Patrick Gansterer  <paroga@webkit.org>
1587
1588         [WIN] Build fix for !USE(CFNETWORK) after r138413.
1589
1590         * platform/network/NetworkStorageSession.h:
1591         (WebCore):
1592
1593 2012-12-26  Yury Semikhatsky  <yurys@chromium.org>
1594
1595         Web Inspector: prepare HeapSnapshot.js for use with native heap snapshot
1596         https://bugs.webkit.org/show_bug.cgi?id=105763
1597
1598         Reviewed by Alexander Pavlov.
1599
1600         HeapSnapshot.js now expects root node to be either the first or the last (real) one
1601         in the list of all nodes.
1602
1603         * inspector/HeapGraphSerializer.cpp:
1604         (HeapGraphNode):
1605         (WebCore::HeapGraphSerializer::serialize): reordered node and edge fields so that the go in
1606         the same order as in the JS heap snapshot.
1607         * inspector/front-end/HeapSnapshot.js:
1608         (WebInspector.HeapSnapshot.prototype._buildAggregates):
1609         (WebInspector.HeapSnapshot.prototype._buildDominatedNodes):
1610         * inspector/front-end/NativeHeapGraph.js:
1611         (WebInspector.NativeHeapGraph):
1612         (WebInspector.NativeHeapGraph.prototype.root): now there is explicit root node which is the last
1613         one in the list, use it.
1614         (WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
1615         (WebInspector.NativeHeapGraph.prototype._addDummyNode): fixed dummy node first edge index.
1616         (WebInspector.NativeHeapGraph.Edge.prototype.target):
1617         (WebInspector.NativeHeapGraph.Node.prototype.referencedNodes):
1618         * inspector/front-end/NativeMemorySnapshotView.js:
1619         (WebInspector.NativeSnapshotNode.prototype._addChildrenFromGraph): switched to use of the root node
1620         (WebInspector.NativeHeapGraphDataGridRoot.prototype._populate):
1621
1622 2012-12-26  Pan Deng  <pan.deng@intel.com>
1623
1624         [Web Inspector]Remove Preview and Response tab from network panel in case websocket.
1625         https://bugs.webkit.org/show_bug.cgi?id=105754
1626
1627         Reviewed by Pavel Feldman.
1628
1629         Network item views for websocket is not consistent before/after receiving a frame.
1630         This change keeps Headers, Frames and Cookies tab for websocket.
1631
1632         No new tests.
1633
1634         * inspector/front-end/NetworkItemView.js:
1635         (WebInspector.NetworkItemView):
1636
1637 2012-12-25  John Griggs  <jgriggs@rim.com>
1638
1639         [BlackBerry] Media controls are drawn on top of one another for media with unknown duration.
1640         https://bugs.webkit.org/show_bug.cgi?id=105747
1641
1642         Reviewed by George Staikos.
1643
1644         No need to reposition controls when there is no timeline element, this mispositions them in the new design.
1645
1646         * platform/blackberry/RenderThemeBlackBerry.cpp:
1647         (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
1648
1649 2012-12-25  Alexander Pavlov  <apavlov@chromium.org>
1650
1651         Web Inspector: Crash when modifying a rule that has been removed through JavaScript
1652         https://bugs.webkit.org/show_bug.cgi?id=105718
1653
1654         Reviewed by Yury Semikhatsky.
1655
1656         CSSStyleRules should be stored by RefPtr's to avoid using stale pointers to deleted instances.
1657
1658         Test: inspector/styles/removed-rule-crash.html
1659
1660         * inspector/InspectorStyleSheet.cpp:
1661         (WebCore::InspectorStyleSheet::ruleForId):
1662         (WebCore::InspectorStyleSheet::revalidateStyle):
1663         (WebCore::InspectorStyleSheet::buildArrayForRuleList):
1664         (WebCore::InspectorStyleSheet::collectFlatRules):
1665         * inspector/InspectorStyleSheet.h:
1666         (InspectorStyleSheet):
1667
1668 2012-12-25  Eugene Klyuchnikov  <eustas@chromium.org>
1669
1670         Web Inspector: [Console] Add "Replay XHR" context menu item for corresponding messages.
1671         https://bugs.webkit.org/show_bug.cgi?id=105714
1672
1673         Reviewed by Pavel Feldman.
1674
1675         Expose "request" value from console message object and use it in console
1676         context menu generator.
1677
1678         * inspector/front-end/ConsoleMessage.js: Expose "request".
1679         * inspector/front-end/ConsoleView.js: Add "Replay XHR" menu item.
1680         * inspector/front-end/NetworkPanel.js: Fix whitespaces.
1681
1682 2012-12-25  Alexander Pavlov  <apavlov@chromium.org>
1683
1684         Web Inspector: Make InspectorState instances per-agent, corresponding to JSON map entries in the cookie
1685         https://bugs.webkit.org/show_bug.cgi?id=105722
1686
1687         Reviewed by Yury Semikhatsky.
1688
1689         Inspector state cookie (in JSON format) has become a map (agent name -> "properties object")
1690         to avoid cross-agent property name clashes in a single property namespace.
1691         As such, InspectorState corresponds to a single "properties object" and is now per-agent,
1692         managed by an InspectorCompositeState (which is owned by [Worker]InspectorController).
1693         Since InspectorCompositeState maps "properties objects" by their agent names, InspectorStates are created
1694         by InspectorCompositeState in the InspectorBaseAgentInterface ctor, using the respective agent name.
1695
1696         No new tests, no change in visible behavior.
1697
1698         * inspector/InspectorAgent.cpp: Pass InspectorCompositeState rather than InspectorState.
1699         * inspector/InspectorAgent.h: Ditto.
1700         * inspector/InspectorApplicationCacheAgent.cpp: Ditto.
1701         * inspector/InspectorApplicationCacheAgent.h: Ditto.
1702         * inspector/InspectorBaseAgent.cpp: Ditto.
1703         (WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface):
1704         Create InspectorState via InspectorCompositeState::createAgentState(agentName).
1705         * inspector/InspectorBaseAgent.h: Pass InspectorCompositeState rather than InspectorState.
1706         * inspector/InspectorCSSAgent.cpp: Ditto.
1707         * inspector/InspectorCSSAgent.h: Ditto.
1708         * inspector/InspectorCanvasAgent.cpp: Ditto.
1709         * inspector/InspectorCanvasAgent.h: Ditto.
1710         * inspector/InspectorConsoleAgent.cpp: Ditto.
1711         * inspector/InspectorConsoleAgent.h: Ditto.
1712         * inspector/InspectorController.cpp: Use InspectorCompositeState rather than InspectorState.
1713         * inspector/InspectorController.h: Ditto.
1714         * inspector/InspectorDOMAgent.cpp: Pass InspectorCompositeState rather than InspectorState.
1715         (WebCore::InspectorDOMAgent::InspectorDOMAgent): Ditto.
1716         * inspector/InspectorDOMAgent.h: Ditto.
1717         * inspector/InspectorDOMDebuggerAgent.cpp: Ditto.
1718         * inspector/InspectorDOMDebuggerAgent.h: Ditto.
1719         * inspector/InspectorDOMStorageAgent.cpp: Ditto.
1720         * inspector/InspectorDOMStorageAgent.h: Ditto.
1721         * inspector/InspectorDatabaseAgent.cpp: Ditto.
1722         * inspector/InspectorDatabaseAgent.h: Ditto.
1723         * inspector/InspectorDebuggerAgent.cpp: Ditto.
1724         * inspector/InspectorDebuggerAgent.h: Ditto.
1725         * inspector/InspectorFileSystemAgent.cpp: Ditto.
1726         * inspector/InspectorFileSystemAgent.h: Ditto.
1727         * inspector/InspectorIndexedDBAgent.cpp: Ditto.
1728         * inspector/InspectorIndexedDBAgent.h: Ditto.
1729         * inspector/InspectorInputAgent.cpp: Ditto.
1730         * inspector/InspectorInputAgent.h: Ditto.
1731         * inspector/InspectorLayerTreeAgent.cpp: Ditto.
1732         * inspector/InspectorLayerTreeAgent.h: Ditto.
1733         * inspector/InspectorMemoryAgent.cpp: Ditto.
1734         * inspector/InspectorMemoryAgent.h: Ditto.
1735         * inspector/InspectorPageAgent.cpp: Ditto.
1736         * inspector/InspectorPageAgent.h: Ditto.
1737         * inspector/InspectorProfilerAgent.cpp: Ditto.
1738         * inspector/InspectorProfilerAgent.h: Ditto.
1739         * inspector/InspectorResourceAgent.cpp: Ditto.
1740         * inspector/InspectorResourceAgent.h: Ditto.
1741         * inspector/InspectorRuntimeAgent.cpp: Ditto.
1742         * inspector/InspectorRuntimeAgent.h: Ditto.
1743         * inspector/InspectorState.cpp: Introduce InspectorCompositeState, refactor.
1744         (WebCore::InspectorState::updateCookie): Delegates to the owning InspectorCompositeState instance.
1745         (WebCore::InspectorState::setFromCookie): Gets called from InspectorCompositeState::loadFromCookie().
1746         (WebCore::InspectorState::remove): Don't forget to update the cookie.
1747         (WebCore::InspectorCompositeState::createAgentState): Creates an InspectorState instance for a named agent.
1748         (WebCore::InspectorCompositeState::loadFromCookie): Restores InspectorStates from a cookie.
1749         (WebCore::InspectorCompositeState::inspectorStateUpdated): Delegate invoked from InspectorState::updateCookie().
1750         * inspector/InspectorState.h:
1751         (InspectorStateUpdateListener): InspectorCompositeState API exposed to InspectorState.
1752         * inspector/InspectorTimelineAgent.cpp: Pass InspectorCompositeState rather than InspectorState.
1753         * inspector/InspectorTimelineAgent.h: Ditto.
1754         * inspector/InspectorWorkerAgent.cpp: Ditto.
1755         * inspector/InspectorWorkerAgent.h: Ditto.
1756         * inspector/PageConsoleAgent.cpp: Ditto.
1757         * inspector/PageConsoleAgent.h: Ditto.
1758         * inspector/PageDebuggerAgent.cpp: Ditto.
1759         * inspector/PageDebuggerAgent.h: Ditto.
1760         * inspector/PageRuntimeAgent.cpp: Ditto.
1761         * inspector/PageRuntimeAgent.h: Ditto.
1762         * inspector/WorkerConsoleAgent.cpp: Ditto.
1763         * inspector/WorkerConsoleAgent.h: Ditto.
1764         * inspector/WorkerDebuggerAgent.cpp: Ditto.
1765         * inspector/WorkerDebuggerAgent.h: Ditto.
1766         * inspector/WorkerInspectorController.cpp: Ditto.
1767         * inspector/WorkerInspectorController.h: Ditto.
1768         * inspector/WorkerRuntimeAgent.cpp: Ditto.
1769         * inspector/WorkerRuntimeAgent.h: Ditto.
1770
1771 2012-12-24  Yury Semikhatsky  <yurys@chromium.org>
1772
1773         Memory instrumentation: provide a way to mark a node as a root
1774         https://bugs.webkit.org/show_bug.cgi?id=105737
1775
1776         Reviewed by Alexander Pavlov.
1777
1778         Extended HeapGraphSerializer to add a fake root node with edges to all
1779         real instrumentation roots.
1780
1781         * inspector/HeapGraphSerializer.cpp:
1782         (WebCore::HeapGraphSerializer::reportNode):
1783         (WebCore::HeapGraphSerializer::addRootNode):
1784         (WebCore):
1785         * inspector/HeapGraphSerializer.h:
1786         (HeapGraphSerializer):
1787
1788 2012-12-24  Yury Semikhatsky  <yurys@chromium.org>
1789
1790         Web Inspector: add message listener only in case of standalone test-runner.html
1791         https://bugs.webkit.org/show_bug.cgi?id=105715
1792
1793         Reviewed by Pavel Feldman.
1794
1795         Tell InspectorFrontendAPI that it is launched by standalone test runner so that it
1796         can decide whether message event listener should be added.
1797
1798         * inspector/front-end/InspectorFrontendAPI.js:
1799         * inspector/front-end/test-runner.html:
1800
1801 2012-12-24  Ilya Tikhonovsky  <loislo@chromium.org>
1802
1803         Web Inspector: Native Memory Instrumentation: propagate member type as edge type to the serialized heap graph.
1804         https://bugs.webkit.org/show_bug.cgi?id=105725
1805
1806         Reviewed by Yury Semikhatsky.
1807
1808         MemoryOwningType was renamed to MemberType.
1809         Source argument were removed from reportEdge, reportLeaf and other edge related methods because it is not necessary.
1810         MemberType argument was propagated from MemoryInstrumentation down to HeapGraphSerializer.
1811
1812         * inspector/HeapGraphSerializer.cpp:
1813         (WebCore::HeapGraphEdge::HeapGraphEdge):
1814         (HeapGraphEdge):
1815         (WebCore::HeapGraphSerializer::HeapGraphSerializer):
1816         (WebCore::HeapGraphSerializer::reportEdge):
1817         (WebCore::HeapGraphSerializer::reportLeaf):
1818         (WebCore::HeapGraphSerializer::serialize):
1819         * inspector/HeapGraphSerializer.h:
1820         (HeapGraphSerializer):
1821         * inspector/MemoryInstrumentationImpl.cpp:
1822         (WebCore::MemoryInstrumentationClientImpl::reportEdge):
1823         (WebCore::MemoryInstrumentationClientImpl::reportLeaf):
1824         * inspector/MemoryInstrumentationImpl.h:
1825         (MemoryInstrumentationClientImpl):
1826
1827 2012-12-24  Takashi Sakamoto  <tasak@google.com>
1828
1829         ::first-letter { overflow: -webkit-paged-y } causes crash
1830         https://bugs.webkit.org/show_bug.cgi?id=105393
1831
1832         Reviewed by Beth Dakin.
1833
1834         Should check whether e is available or not before invoking
1835         e->hasTagName in adjustRenderStyle in StyleResolver.cpp.
1836
1837         Test: fast/css/pseudo-element-opagedxy-crash.html
1838
1839         * css/StyleResolver.cpp:
1840         (WebCore::StyleResolver::adjustRenderStyle):
1841         If adjustRenderStyle is invoked in pseudoStyleForElement, the given
1842         element is 0. So e is not available. However if the given style's
1843         overflowY is OPAGEDX or OPAGEDY, adjustRenderStyle doesn't check
1844         whether e is available or not before e->hasTagName.
1845         This causes a crash.
1846
1847 2012-12-24  Alexei Filippov  <alph@chromium.org>
1848
1849         Web Inspector: add async API for passing renderer process memory stats
1850         https://bugs.webkit.org/show_bug.cgi?id=105278
1851
1852         Reviewed by Yury Semikhatsky.
1853
1854         On some platforms (e.g. Linux) it may take some time to collect
1855         total process memory information as it involves an IPC out of a
1856         sandboxed renderer process. So add an async way to collect the statistics.
1857
1858         * platform/MemoryUsageSupport.cpp:
1859         (WebCore::MemoryUsageSupport::requestProcessMemorySizes):
1860         (WebCore):
1861         * platform/MemoryUsageSupport.h:
1862         (MemoryUsageSupport):
1863         (ProcessMemorySizesCallback):
1864         (WebCore::MemoryUsageSupport::ProcessMemorySizesCallback::~ProcessMemorySizesCallback):
1865         * platform/chromium/MemoryUsageSupportChromium.cpp:
1866         (WebCore::MemoryUsageSupport::requestProcessMemorySizes):
1867         (WebCore):
1868         * platform/qt/MemoryUsageSupportQt.cpp:
1869         (WebCore::MemoryUsageSupport::requestProcessMemorySizes):
1870         (WebCore):
1871
1872 2012-12-24  Laszlo Gombos  <l.gombos@samsung.com>
1873
1874         Remove wtf/Platform.h includes from {c|cpp} files
1875         https://bugs.webkit.org/show_bug.cgi?id=105678
1876
1877         Reviewed by Kentaro Hara.
1878
1879         Remove wtf/Platform.h from the include list as it is already
1880         included in config.h.
1881
1882         No new tests as there is no new functionality.
1883
1884         * rendering/svg/RenderSVGRect.cpp:
1885
1886 2012-12-24  Kentaro Hara  <haraken@chromium.org>
1887
1888         Follow up fixes for r137739
1889         https://bugs.webkit.org/show_bug.cgi?id=104982
1890
1891         Reviewed by Ryosuke Niwa.
1892
1893         Applied darin's comments in https://bugs.webkit.org/show_bug.cgi?id=104982#c18
1894
1895         No tests. No change in behavior.
1896
1897         * dom/ContainerNode.h:
1898         (WebCore::ChildNodesLazySnapshot::nextNode):
1899
1900 2012-12-24  Tiancheng Jiang  <tijiang@rim.com>
1901
1902         Update BB10 media render theme.
1903         https://bugs.webkit.org/show_bug.cgi?id=105728
1904
1905         Reviewed by Rob Buis.
1906
1907         Internally reviewed by John Griggs.
1908         Use GL renderer to paint media control.
1909
1910         * css/mediaControlsBlackBerry.css:
1911         (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
1912         * platform/blackberry/RenderThemeBlackBerry.cpp:
1913         (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
1914         (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
1915
1916 2012-12-24  Sheriff Bot  <webkit.review.bot@gmail.com>
1917
1918         Unreviewed, rolling out r138436.
1919         http://trac.webkit.org/changeset/138436
1920         https://bugs.webkit.org/show_bug.cgi?id=105723
1921
1922         Asserts on state restoration in debug builds (Requested by
1923         apavlov on #webkit).
1924
1925         * inspector/InspectorAgent.cpp:
1926         (InspectorAgentState):
1927         (WebCore::InspectorAgent::enable):
1928         (WebCore::InspectorAgent::disable):
1929         (WebCore::InspectorAgent::evaluateForTestInFrontend):
1930         (WebCore::InspectorAgent::inspect):
1931         * inspector/InspectorApplicationCacheAgent.cpp:
1932         (ApplicationCacheAgentState):
1933         (WebCore::InspectorApplicationCacheAgent::restore):
1934         (WebCore::InspectorApplicationCacheAgent::enable):
1935         * inspector/InspectorCSSAgent.cpp:
1936         (CSSAgentState):
1937         (WebCore::InspectorCSSAgent::restore):
1938         (WebCore::InspectorCSSAgent::enable):
1939         (WebCore::InspectorCSSAgent::disable):
1940         * inspector/InspectorCanvasAgent.cpp:
1941         (CanvasAgentState):
1942         (WebCore::InspectorCanvasAgent::restore):
1943         (WebCore::InspectorCanvasAgent::enable):
1944         (WebCore::InspectorCanvasAgent::disable):
1945         * inspector/InspectorController.cpp:
1946         (WebCore::InspectorController::InspectorController):
1947         * inspector/InspectorController.h:
1948         (WebCore):
1949         (InspectorController):
1950         * inspector/InspectorDOMStorageAgent.cpp:
1951         (DOMStorageAgentState):
1952         (WebCore::InspectorDOMStorageAgent::restore):
1953         (WebCore::InspectorDOMStorageAgent::enable):
1954         (WebCore::InspectorDOMStorageAgent::disable):
1955         * inspector/InspectorDatabaseAgent.cpp:
1956         (DatabaseAgentState):
1957         (WebCore):
1958         (WebCore::InspectorDatabaseAgent::enable):
1959         (WebCore::InspectorDatabaseAgent::disable):
1960         (WebCore::InspectorDatabaseAgent::restore):
1961         * inspector/InspectorDebuggerAgent.cpp:
1962         (WebCore::InspectorDebuggerAgent::disable):
1963         * inspector/InspectorFileSystemAgent.cpp:
1964         (FileSystemAgentState):
1965         (WebCore):
1966         (WebCore::InspectorFileSystemAgent::enable):
1967         (WebCore::InspectorFileSystemAgent::disable):
1968         (WebCore::InspectorFileSystemAgent::clearFrontend):
1969         (WebCore::InspectorFileSystemAgent::restore):
1970         * inspector/InspectorIndexedDBAgent.cpp:
1971         (IndexedDBAgentState):
1972         (WebCore):
1973         (WebCore::InspectorIndexedDBAgent::restore):
1974         (WebCore::InspectorIndexedDBAgent::enable):
1975         (WebCore::InspectorIndexedDBAgent::disable):
1976         * inspector/InspectorLayerTreeAgent.cpp:
1977         (LayerTreeAgentState):
1978         (WebCore::InspectorLayerTreeAgent::restore):
1979         (WebCore::InspectorLayerTreeAgent::enable):
1980         (WebCore::InspectorLayerTreeAgent::disable):
1981         * inspector/InspectorPageAgent.cpp:
1982         (PageAgentState):
1983         (WebCore::InspectorPageAgent::restore):
1984         (WebCore::InspectorPageAgent::webViewResized):
1985         (WebCore::InspectorPageAgent::enable):
1986         (WebCore::InspectorPageAgent::disable):
1987         (WebCore::InspectorPageAgent::addScriptToEvaluateOnLoad):
1988         (WebCore::InspectorPageAgent::removeScriptToEvaluateOnLoad):
1989         (WebCore::InspectorPageAgent::setDeviceMetricsOverride):
1990         (WebCore::InspectorPageAgent::setShowPaintRects):
1991         (WebCore::InspectorPageAgent::setShowFPSCounter):
1992         (WebCore::InspectorPageAgent::setScriptExecutionDisabled):
1993         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
1994         (WebCore::InspectorPageAgent::applyScreenWidthOverride):
1995         (WebCore::InspectorPageAgent::applyScreenHeightOverride):
1996         (WebCore::InspectorPageAgent::didPaint):
1997         (WebCore::InspectorPageAgent::didLayout):
1998         (WebCore::InspectorPageAgent::setEmulatedMedia):
1999         (WebCore::InspectorPageAgent::applyEmulatedMedia):
2000         * inspector/InspectorResourceAgent.cpp:
2001         (ResourceAgentState):
2002         (WebCore::InspectorResourceAgent::restore):
2003         (WebCore::InspectorResourceAgent::~InspectorResourceAgent):
2004         (WebCore::InspectorResourceAgent::enable):
2005         (WebCore::InspectorResourceAgent::disable):
2006         * inspector/InspectorState.cpp:
2007         (WebCore::InspectorState::InspectorState):
2008         (WebCore::InspectorState::loadFromCookie):
2009         (WebCore):
2010         (WebCore::InspectorState::mute):
2011         (WebCore::InspectorState::unmute):
2012         (WebCore::InspectorState::updateCookie):
2013         (WebCore::InspectorState::remove):
2014         * inspector/InspectorState.h:
2015         (WebCore):
2016         (InspectorState):
2017         (WebCore::InspectorState::setLong):
2018         * inspector/InspectorTimelineAgent.cpp:
2019         (TimelineAgentState):
2020         (WebCore::InspectorTimelineAgent::restore):
2021         (WebCore::InspectorTimelineAgent::start):
2022         (WebCore::InspectorTimelineAgent::stop):
2023         * inspector/WorkerInspectorController.cpp:
2024         (WebCore::WorkerInspectorController::WorkerInspectorController):
2025         * inspector/WorkerInspectorController.h:
2026         (WebCore):
2027         (WorkerInspectorController):
2028
2029 2012-12-24  Peter Rybin  <prybin@chromium.org>
2030
2031         Web Inspector: Keep LiveEdit API disabled when idle
2032         https://bugs.webkit.org/show_bug.cgi?id=104039
2033
2034         Reviewed by Pavel Feldman.
2035
2036         Guards are added to LiveEdit call
2037
2038         * bindings/v8/ScriptDebugServer.cpp:
2039         (WebCore::ScriptDebugServer::setScriptSource):
2040
2041 2012-12-24  Andrey Lushnikov  <lushnikov@chromium.com>
2042
2043         Web Inspector: refactor TextEditorHighlighter's highlight attributes to dense array
2044         https://bugs.webkit.org/show_bug.cgi?id=105626
2045
2046         Reviewed by Pavel Feldman.
2047
2048         Refactor highlight attributes from sparse array to dense array.
2049
2050         No new tests: no behaviour changes, coverage provided by existing tests.
2051
2052         * inspector/front-end/DefaultTextEditor.js:
2053         (WebInspector.TextEditorMainPanel.prototype._paintLine):
2054         (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
2055         * inspector/front-end/TextEditorHighlighter.js:
2056         (WebInspector.TextEditorHighlighter.prototype._highlightLines):
2057
2058 2012-12-21  Alexander Pavlov  <apavlov@chromium.org>
2059
2060         Web Inspector: Make use of the new InspectorState::remove() in inspector agents
2061         https://bugs.webkit.org/show_bug.cgi?id=105438
2062
2063         Reviewed by Yury Semikhatsky.
2064
2065         This patch introduces the following refactorings:
2066         - setting property values of InspectorState to "empty" objects has been replaced by removing them from the state;
2067         - InspectorState instance is no longer shared across agents, so that the property names can no longer clash.
2068           Instead, InspectorCompositeState creates and owns InspectorState instances for every agent;
2069         - agent-specific prefix has been stripped from most property names, where it looked synthetic.
2070         - updateCookie() is called from InspectorState::remove().
2071
2072         No new tests, as there is no visible change in the behavior.
2073
2074         * inspector/InspectorAgent.cpp: Agent-specific property name prefix stripped.
2075         * inspector/InspectorApplicationCacheAgent.cpp: Ditto.
2076         * inspector/InspectorCSSAgent.cpp: Ditto.
2077         * inspector/InspectorCanvasAgent.cpp: Ditto.
2078         * inspector/InspectorController.cpp: Make use of InspectorCompositeState rather than InspectorState.
2079         * inspector/InspectorController.h: Ditto.
2080         * inspector/InspectorDOMStorageAgent.cpp: Agent-specific property name prefix stripped.
2081         * inspector/InspectorDatabaseAgent.cpp: Ditto.
2082         * inspector/InspectorDebuggerAgent.cpp: Ditto.
2083         (WebCore::InspectorDebuggerAgent::disable):
2084         Use "remove" instead of setting an empty object.
2085         * inspector/InspectorFileSystemAgent.cpp: Agent-specific property name prefix stripped.
2086         * inspector/InspectorIndexedDBAgent.cpp: Ditto.
2087         * inspector/InspectorLayerTreeAgent.cpp: Ditto.
2088         * inspector/InspectorPageAgent.cpp: Ditto.
2089         (WebCore::InspectorPageAgent::disable):
2090         Use "remove" instead of setting empty values for certain properties.
2091         (WebCore::InspectorPageAgent::addScriptToEvaluateOnLoad):
2092         Remove unnecessary code (object is created and put into the map if none is found).
2093         * inspector/InspectorResourceAgent.cpp: Agent-specific property name prefix stripped.
2094         (WebCore::InspectorResourceAgent::disable):
2095         Use "remove" instead of setting an empty object for userAgentOverride.
2096         * inspector/InspectorState.cpp: Add InspectorCompositeState.
2097         (WebCore::InspectorState::setFromCookie): Gets invoked from InspectorCompositeState::loadFromCookie().
2098         (WebCore::InspectorState::updateCookie): Call updateCookie().
2099         (WebCore::InspectorCompositeState::createAgentState): Creates an InspectorState instance to be passed to an agent.
2100         * inspector/InspectorState.h: Add InspectorCompositeState.
2101         (WebCore::InspectorState::setLong): Fix cast.
2102         * inspector/InspectorTimelineAgent.cpp: Agent-specific property name prefix stripped.
2103         * inspector/WorkerInspectorController.cpp: Make use of InspectorCompositeState rather than InspectorState.
2104         * inspector/WorkerInspectorController.h: Ditto.
2105
2106 2012-12-23  Dimitri Glazkov  <dglazkov@chromium.org>
2107
2108         Split fast-rejection filter logic off SelectorChecker.
2109         https://bugs.webkit.org/show_bug.cgi?id=105660
2110
2111         The awesome Bloom filter and parent stack logic don't need to be in SelectorChecker. They nicely factor out
2112         into their own pretty thing, named thereby SelectorFilter.
2113
2114         Reviewed by Eric Seidel.
2115
2116         No change in functionality, covered by existing tests.
2117
2118         * CMakeLists.txt: Added SelectorFilter to build systems.
2119         * GNUmakefile.list.am: Ditto.
2120         * Target.pri: Ditto.
2121         * WebCore.gypi: Ditto.
2122         * WebCore.xcodeproj/project.pbxproj: Ditto.
2123         * css/CSSAllInOne.cpp: Ditto.
2124         * css/RuleSet.cpp: Changed to use SelectorFilter.
2125         (WebCore::RuleData::RuleData): Ditto.
2126         * css/SelectorChecker.cpp: Ditto.
2127         * css/SelectorChecker.h: Ditto.
2128         (SelectorChecker):
2129         * css/StyleResolver.cpp: Ditto.
2130         (WebCore):
2131         (WebCore::StyleResolver::pushParentElement): Ditto.
2132         (WebCore::StyleResolver::popParentElement): Ditto.
2133         (WebCore::StyleResolver::collectMatchingRulesForList): Ditto.
2134         * css/StyleResolver.h:
2135         (StyleResolver): Ditto.
2136
2137 2012-12-23  Qiankun Miao  <qiankun.miao@intel.com>
2138
2139         Remove unused reference to "class LayerChromium"
2140         https://bugs.webkit.org/show_bug.cgi?id=105502
2141
2142         Reviewed by Kentaro Hara.
2143
2144         class LayerChromium doesn't exist any more. Just remove the unused
2145         code.
2146
2147         * platform/graphics/chromium/Canvas2DLayerBridge.h:
2148
2149 2012-12-23  Alexey Proskuryakov  <ap@apple.com>
2150
2151         <rdar://problem/12808377> Network process should respect cookie accept policy
2152         https://bugs.webkit.org/show_bug.cgi?id=105684
2153
2154         Reviewed by Sam Weinig.
2155
2156         Changed cookie change observer to not use platform strategies, to make it usable
2157         in NetworkProcess. startObservingCookieChanges() now just takes a callback pointer.
2158
2159         * WebCore.exp.in:
2160         * platform/CookiesStrategy.h:
2161         * platform/network/CookieStorage.h:
2162         * platform/network/cf/CookieStorageCFNet.cpp:
2163         (WebCore::notifyCookiesChangedOnMainThread):
2164         (WebCore::startObservingCookieChanges):
2165         * platform/network/mac/CookieStorageMac.mm:
2166         (-[WebCookieStorageObjCAdapter notifyCookiesChangedOnMainThread]):
2167         (-[WebCookieStorageObjCAdapter startListeningForCookieChangeNotificationsWithCallback:]):
2168         (WebCore::startObservingCookieChanges):
2169
2170 2012-12-23  Tony Chang  <tony@chromium.org>
2171
2172         [Qt][Mac] Unreviewed fix the build after r138413
2173         https://bugs.webkit.org/show_bug.cgi?id=105686
2174
2175         Don't use a temporary const reference so the compiler doesn't make a copy.
2176         An example compile error (clang):
2177         Source/WebCore/loader/CookieJar.cpp:73:67: error: copying parameter of type 'WebCore::NetworkStorageSession' invokes deleted constructor
2178             return platformStrategies()->cookiesStrategy()->cookiesForDOM(SESSION(document), document->firstPartyForCookies(), url);
2179
2180         * loader/CookieJar.cpp:
2181         (WebCore::cookies):
2182         (WebCore::setCookies):
2183         (WebCore::cookiesEnabled):
2184         (WebCore::cookieRequestHeaderFieldValue):
2185         (WebCore::getRawCookies):
2186         (WebCore::deleteCookie):
2187
2188 2012-12-22  Alexey Proskuryakov  <ap@apple.com>
2189
2190         Add a separate class for networking related storage
2191         https://bugs.webkit.org/show_bug.cgi?id=105676
2192
2193         Reviewed by Sam Weinig.
2194
2195         NetworkingContext combines a reference to storage (cookies and more) and data that's
2196         only meaningful when loading. This makes it very ugly to use for cookie manipulation
2197         when there is no load (e.g. for document.cookie).
2198
2199         Adding NetworkStorageSession, which encorportes network-related sesion data, such
2200         as cookies and session HTTP credentials.
2201
2202         For some ports, refactoring is not finished, NetworkStorageSession being a wrapper
2203         for NetworkingContext.
2204
2205         * CMakeLists.txt:
2206         * GNUmakefile.list.am:
2207         * Target.pri:
2208         * WebCore.exp.in:
2209         * WebCore.gypi:
2210         * WebCore.vcproj/WebCore.vcproj:
2211         * WebCore.xcodeproj/project.pbxproj:
2212         Updated for new files and functions.
2213
2214         * platform/network/PlatformCookieJar.h:
2215         * loader/CookieJar.cpp:
2216         * platform/CookiesStrategy.h:
2217         * platform/network/cf/CookieJarCFNet.cpp:
2218         * platform/network/chromium/CookieJarChromium.cpp:
2219         * platform/network/curl/CookieJarCurl.cpp:
2220         * platform/network/mac/CookieJarMac.mm:
2221         * platform/network/qt/CookieJarQt.cpp:
2222         * platform/network/soup/CookieJarSoup.cpp:
2223         * platform/network/win/CookieJarWin.cpp:
2224         PlatformCookieJar and strategy cookie functions now take a NetworkStorageSession
2225         instead of NetworkingContext.
2226         Note that they take a const reference to support creating a temporary session
2227         wrapper for ports that just wrap a NetworkingContext.
2228
2229         * loader/ResourceLoader.cpp:
2230         * loader/cache/CachedResource.h:
2231         * platform/network/BlobResourceHandle.cpp:
2232         * platform/network/ResourceHandle.cpp:
2233         * platform/network/ResourceHandle.h:
2234         * platform/network/ResourceHandleInternal.h:
2235         * platform/network/chromium/ResourceHandle.cpp:
2236         * platform/network/curl/ResourceHandleCurl.cpp:
2237         * platform/network/mac/ResourceHandleMac.mm:
2238         * platform/network/qt/QNetworkReplyHandler.cpp:
2239         * platform/network/soup/DNSSoup.cpp:
2240         * platform/network/soup/ResourceHandleSoup.cpp:
2241         * platform/network/win/ResourceHandleWin.cpp:
2242         ResourceHandle no longer includes unneeded NetworkingContext.h and AuthenticationClient.h.
2243         This avoids near-world rebuilds on any NetworkingContext change.
2244
2245         * platform/network/NetworkStorageSession.h: Added.
2246         * platform/network/NetworkStorageSessionStub.cpp: Added.
2247         * platform/network/cf/NetworkStorageSessionCFNet.cpp: Added.
2248         Good new stuff. Stub version just wraps NetworkingContext for platforms that still
2249         need to finish the refactoring.
2250
2251         * platform/network/NetworkingContext.h:
2252         The context now has a NetworkStorageSession, and doesn't expose CFNet level objects directly.
2253
2254         * platform/network/cf/CookieStorageCFNet.cpp:
2255         * platform/network/cf/CookieStorageCFNet.h: Removed.
2256         We no longer have separate free functions to track storage, it's part of NetworkStorageSession now.
2257
2258         * platform/network/cf/ResourceHandleCFNet.cpp: Updated to use NetworkStorageSession.
2259
2260         * platform/network/mac/CookieStorageMac.mm: Dont include CookieStorageCFNet.h, it
2261         was not needed.
2262
2263 2012-12-22  Nico Weber  <thakis@chromium.org>
2264
2265         InlineTextBox: Remove potentially confusing "} if" pattern.
2266         https://bugs.webkit.org/show_bug.cgi?id=105499
2267
2268         Reviewed by Ojan Vafai.
2269
2270         It's not clear to me on first look if this is intentional or missing
2271         an "else" (and this pattern was used in just one other place in
2272         webkit, which I've removed). It turns out no else is missing here,
2273         this is checked by fast/text/justified-selection.html
2274
2275         * rendering/InlineTextBox.cpp:
2276         (WebCore::paintTextWithShadows):
2277
2278 2012-12-21  Jan Keromnes  <janx@linux.com>
2279
2280         Web Inspector: Update CodeMirror to stable
2281         https://bugs.webkit.org/show_bug.cgi?id=105653
2282
2283         Reviewed by Pavel Feldman.
2284
2285         Fixes several minor issues, including throw scroll on mac.
2286
2287         * inspector/front-end/cm/codemirror.css:
2288         (.cm-negative):
2289         (.cm-positive):
2290         (.CodeMirror-gutter):
2291         (.cm-searching):
2292         * inspector/front-end/cm/codemirror.js:
2293         (window.CodeMirror):
2294         (window.CodeMirror.):
2295         * inspector/front-end/cm/css.js:
2296         (.):
2297         * inspector/front-end/cm/htmlmixed.js:
2298         (.):
2299         * inspector/front-end/cm/javascript.js:
2300         (.):
2301         * inspector/front-end/cm/xml.js:
2302
2303 2012-12-21  Elliott Sprehn  <esprehn@chromium.org>
2304
2305         Replace documentFragmentIsShadowRoot with isTreeScope
2306         https://bugs.webkit.org/show_bug.cgi?id=105345
2307
2308         Reviewed by Dimitri Glazkov.
2309
2310         We can replace documentFragmentIsShadowRoot with isTreeScope() which is
2311         trival to detect by checking treeScope()->rootNode() == this. To do this
2312         we must stop adopting ShadowRoots into the document when they're removed,
2313         which was always wrong anyway as it meant that the TreeScope of a ShadowRoot
2314         was no longer itself after it had been removed. It also meant that the
2315         children of a ShadowRoot that was removed were no longer in it's tree scope
2316         despite being descendants of it.
2317
2318         Making this simplification allows further simplication like
2319         Node::containingShadowRoot can be made O(1) instead of O(k) where k is
2320         the depth of the node.
2321
2322         No new tests, just refactoring.
2323
2324         * WebCore.exp.in:
2325         * dom/DocumentFragment.h:
2326         (DocumentFragment):
2327         * dom/ElementShadow.cpp:
2328         (WebCore::ElementShadow::removeAllShadowRoots):
2329         * dom/Node.cpp:
2330         (WebCore::Node::setTreeScope):
2331         (WebCore::Node::isTreeScope):
2332         (WebCore):
2333         * dom/Node.h:
2334         (Node):
2335         (WebCore::Node::isShadowRoot):
2336         * dom/ShadowRoot.cpp:
2337         (WebCore::ShadowRoot::~ShadowRoot):
2338         * dom/ShadowRoot.h:
2339         (ShadowRoot):
2340
2341 2012-12-21  Xianzhu Wang  <wangxianzhu@chromium.org>
2342
2343         [Chromium-Android] Use harfbuzz-ng instead of harfbuzz-old on Android
2344         https://bugs.webkit.org/show_bug.cgi?id=104410
2345
2346         Using harfbuzz-ng we can avoid many bugs of the obsolete harfbuzz-old.
2347
2348         Reviewed by Eric Seidel.
2349
2350         No new tests. No change of functionality. Existing tests should pass.
2351
2352         * WebCore.gyp/WebCore.gyp: Use harfbuzz-ng on Android.
2353
2354 2012-12-21  Joshua Bell  <jsbell@chromium.org>
2355
2356         IndexedDB: Combine openConnection and openConnectionWithVersion
2357         https://bugs.webkit.org/show_bug.cgi?id=105658
2358
2359         Reviewed by Tony Chang.
2360
2361         Combine the logic from these two methods. Mostly a refactor, but in the "pending calls"
2362         case the behavior is slightly altered since the version and no-version queues were
2363         previously separate, so the order changes. The new order matches the spec and FF/IE
2364         behavior, and a test is added to verify this.
2365
2366         Chromium's webkit_unit_tests rely on a quirk to bypass the upgrade mechanism; the usage
2367         is slightly altered and made more explicit, and requires a small amount of test-only code.
2368
2369         Test: storage/indexeddb/open-ordering.html
2370
2371         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
2372         (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
2373         (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
2374         (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
2375         (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
2376         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
2377         (WebCore::IDBDatabaseBackendImpl::openConnection):
2378         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
2379         (WebCore::IDBDatabaseBackendImpl::close):
2380         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
2381         (IDBDatabaseBackendImpl):
2382         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
2383         (WebCore::IDBFactoryBackendImpl::open):
2384
2385 2012-12-21  Brady Eidson  <beidson@apple.com>
2386
2387         Update localizable strings as a followup to http://trac.webkit.org/changeset/138387
2388         https://bugs.webkit.org/show_bug.cgi?id=105592
2389
2390         Rubberstamped by Alexey Proskuryakov.
2391
2392         * English.lproj/Localizable.strings: Added a new error string.
2393
2394 2012-12-21  Kenneth Russell  <kbr@google.com>
2395
2396         Expose ArrayBufferView constructor on DOMWindow
2397         https://bugs.webkit.org/show_bug.cgi?id=105605
2398
2399         Reviewed by Sam Weinig.
2400
2401         Update IDL to track recent spec change exposing ArrayBufferView
2402         constructor on DOMWindow for instanceof checks. There are no
2403         constructors exposed in the Web IDL, however, so calling it via
2404         operator new throws TypeError.
2405
2406         Test (updated): fast/canvas/webgl/array-unit-tests.html
2407
2408         * html/canvas/ArrayBufferView.idl:
2409             Removed OmitConstructor attribute.
2410         * page/DOMWindow.idl:
2411             Exposed ArrayBufferView constructor function attribute.
2412
2413 2012-12-21  Brady Eidson  <beidson@apple.com>
2414
2415         Remove ResourceLoadScheduler::addMainResourceLoad and all related code
2416         <rdar://problem/12925275> and https://bugs.webkit.org/show_bug.cgi?id=105644
2417
2418         Reviewed by Alexey Proskuryakov.
2419
2420         Now that main resources loads are scheduled (bug 49246) we don't need this stuff anymore.
2421
2422         No new tests (No change in behavior).
2423
2424         * WebCore.exp.in:
2425         * loader/ResourceLoadScheduler.cpp:
2426         * loader/ResourceLoadScheduler.h:
2427
2428 2012-12-21  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
2429
2430         [WebGL][EFL][Qt] Transparent canvas composited non-transparent
2431         https://bugs.webkit.org/show_bug.cgi?id=105325
2432
2433         Reviewed by Kenneth Rohde Christiansen.
2434
2435         glXPixmap is always created without alpha channel because 1st GLXFBConfig 
2436         in a list doesn't support transparency. 
2437         Use the same code that is used to find GLXFBConfig with alpha for window 
2438         creation in GraphicsSurfacePrivate::createPixmap(). Code is moved to 
2439         findFBConfigWithAlpha() method.
2440
2441         Covered by fast/canvas/webgl/webgl-composite-modes-repaint.html
2442
2443         * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
2444         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
2445         (WebCore::GraphicsSurfacePrivate::createPixmap):
2446         (WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):
2447         (GraphicsSurfacePrivate):
2448
2449 2012-12-21  Dimitri Glazkov  <dglazkov@chromium.org>
2450
2451         Unreviewed, rolling out r138376.
2452         http://trac.webkit.org/changeset/138376
2453         https://bugs.webkit.org/show_bug.cgi?id=104995
2454
2455         Broke a bunch of tests on mac.
2456
2457         * dom/ShadowRoot.cpp:
2458         (WebCore::ShadowRoot::nodeName):
2459         (WebCore):
2460         * dom/ShadowRoot.h:
2461         (ShadowRoot):
2462
2463 2012-12-21  Sheriff Bot  <webkit.review.bot@gmail.com>
2464
2465         Unreviewed, rolling out r138237.
2466         http://trac.webkit.org/changeset/138237
2467         https://bugs.webkit.org/show_bug.cgi?id=105637
2468
2469         Regresses web inspector's editor performance. (Requested by
2470         pfeldman on #webkit).
2471
2472         * inspector/front-end/DefaultTextEditor.js:
2473         (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
2474         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
2475         (WebInspector.TextEditorMainChunk.prototype.expand):
2476
2477 2012-12-21  Ilya Tikhonovsky  <loislo@chromium.org>
2478
2479         Various tests in media/track are intermittently crashing.
2480         https://bugs.webkit.org/show_bug.cgi?id=105606
2481
2482         Reviewed by Eric Seidel.
2483
2484         The root of problem is the fact that we update tracks even if we are in process of deleting the document.
2485         Media element can stop doing that if the document informed the element via ::stop that it is going away.
2486
2487         * html/HTMLMediaElement.cpp:
2488         (WebCore::HTMLMediaElement::endIgnoringTrackDisplayUpdateRequests):
2489
2490 2012-12-21  Alexei Svitkine  <asvitkine@chromium.org>
2491
2492         [Chromium/Mac] Don't send an onclick event from a ctrl-click
2493         https://bugs.webkit.org/show_bug.cgi?id=105554
2494
2495         Reviewed by Dimitri Glazkov.
2496
2497         Don't send the onclick event on a control click event (which
2498         triggers the context menu on the Mac). This matches the
2499         behaviour of the Apple Mac port, although the Apple port
2500         does this by checking whether the context menu is visible
2501         in WebPage::mouseEvent().
2502
2503         This is a fix for http://crbug.com/146143
2504
2505         Test: fast/events/controlclick-no-onclick.html
2506
2507         * page/EventHandler.cpp:
2508         (WebCore::EventHandler::handleMouseReleaseEvent):
2509
2510 2012-12-21  Shinya Kawanaka  <shinyak@chromium.org>
2511
2512         Implement ShadowRoot::elementFromPoint
2513         https://bugs.webkit.org/show_bug.cgi?id=104579
2514
2515         Reviewed by Dimitri Glazkov.
2516
2517         Move elementFromPoint and nodeFromPoint to TreeScope from Document so that ShadowRoot can call it.
2518         In the elementFromPoint(), the element taken by nodeFromPoint is not in the same tree scope, its ancestor is returned.
2519
2520         Since nodeFromPoint does not return the shadow ancestor of the result node, I don't make it TreeScope method.
2521
2522         Test: fast/dom/shadow/elementfrompoint.html
2523
2524         * dom/Document.cpp:
2525         (WebCore::Document::elementFromPoint): Code is shared with TreeScope.
2526         (WebCore::Document::caretRangeFromPoint):
2527         * dom/ShadowRoot.idl:
2528         * dom/TreeScope.cpp:
2529         (WebCore::nodeFromPoint): Moved from Document.cpp
2530         (WebCore):
2531         (WebCore::TreeScope::elementFromPoint):
2532         * dom/TreeScope.h:
2533         (WebCore):
2534         (TreeScope):
2535
2536 2012-12-21  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2537
2538         [EFL][WK2] Never create WebCore scrollbars for EFL/WK2
2539         https://bugs.webkit.org/show_bug.cgi?id=105632
2540
2541         Reviewed by Antonio Gomes.
2542
2543         For delegates scroll we must not use the scroll animator,
2544         or similar as those depends on creating WebCore scrollbars.
2545
2546         Handle the wheel event manually for delegates scrolling.
2547
2548         * page/FrameView.cpp:
2549         (WebCore::FrameView::wheelEvent):
2550
2551 2012-12-21  Shinya Kawanaka  <shinyak@chromium.org>
2552
2553         [Shadow DOM]: ShadowRoot wrong nodeName attribute
2554         https://bugs.webkit.org/show_bug.cgi?id=104995
2555
2556         Reviewed by Dimitri Glazkov.
2557
2558         According to the Shadow DOM spec, ShadowRoot.nodeName should return '#document-fragment' instead of '#shadow-root'.
2559         We remove ShadowRoot::nodeName.
2560
2561         No new tests, covered by existing tests.
2562
2563         * dom/ShadowRoot.cpp:
2564         * dom/ShadowRoot.h:
2565         (ShadowRoot):
2566
2567 2012-12-21  Mihai Parparita  <mihaip@chromium.org>
2568
2569         Slow performance with <select> with many options and size >= 2
2570         https://bugs.webkit.org/show_bug.cgi?id=105483
2571
2572         Reviewed by Eric Seidel.
2573         
2574         Avoids creating renderers for children of list <select>s that are not
2575         <option> or <optgroup>. This is both more correct (no other browser
2576         displays them) and provides a performance benefit (direct text children 
2577         of <select> would have O(N^2) behavior; this usually happened due to
2578         whitespace between <option>...</option> tags).
2579
2580         Test: fast/forms/menulist-no-renderer-for-unexpected-children.html
2581
2582         * html/HTMLSelectElement.cpp:
2583         (WebCore::HTMLSelectElement::childShouldCreateRenderer):
2584
2585 2012-12-21  Keishi Hattori  <keishi@webkit.org>
2586
2587         Fix typing zero into multiple field input
2588         https://bugs.webkit.org/show_bug.cgi?id=105501
2589
2590         Reviewed by Kent Tamura.
2591
2592         We have a couple of problems when handling zero in a multiple fields
2593         element.
2594         1. Typing '02' into a month field will set '12'.
2595         2. Typing '0' into 12 hour hour field will set '12' and move to the 
2596            focus to the next field.
2597         This change adds a type ahead buffer so we can handle these cases
2598         properly. If the value in the type ahead buffer is valid we set it so a
2599         change event will fire.
2600
2601         Added tests to *-multiple-fields-keyboard-events.html.
2602
2603         * html/shadow/DateTimeNumericFieldElement.cpp:
2604         (WebCore::DateTimeNumericFieldElement::didBlur): Clear the type ahead
2605         buffer. handleKeyboardEvent() won't set the type ahead value if it is
2606         not in range, so we set the value here.
2607         (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
2608         (WebCore::DateTimeNumericFieldElement::setEmptyValue): Clear type ahead buffer.
2609         (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
2610         (WebCore::DateTimeNumericFieldElement::stepDown): Clear type ahead buffer.
2611         (WebCore::DateTimeNumericFieldElement::stepUp): Clear type ahead buffer.
2612         (WebCore::DateTimeNumericFieldElement::typeAheadValue): Returns integer
2613         value for the type ahead characters.
2614         (WebCore):
2615         (WebCore::DateTimeNumericFieldElement::visibleValue): If we have type
2616         ahead characters, show that.
2617         * html/shadow/DateTimeNumericFieldElement.h:
2618         (DateTimeNumericFieldElement):
2619
2620 2012-12-21  Xabier Rodriguez Calvar  <calvaris@igalia.com>
2621
2622         [GStreamer] Buffering ranges are reported incorrectly with GStreamer 1.0
2623         https://bugs.webkit.org/show_bug.cgi?id=105319
2624
2625         Reviewed by Philippe Normand.
2626
2627         We add the gPercentMax constant to select between 100 and
2628         GST_FORMAT_PERCENT_MAX depending if we are compiling against
2629         GStreamer 0.10 or 1.0 and we use that in the corresponding method.
2630
2631         Current tests should suffice.
2632
2633         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2634         (WebCore::MediaPlayerPrivateGStreamer::buffered): Added the use of
2635         gPercentMax constant instead of 100 to have the different code
2636         paths for GStreamer 0.10 and 1.0.
2637
2638 2012-12-21  Tim Horton  <timothy_horton@apple.com>
2639
2640         PDFPlugin: Cannot drop files/URLs on PDFPlugin
2641         https://bugs.webkit.org/show_bug.cgi?id=105516
2642         <rdar://problem/12729443>
2643
2644         Reviewed by Alexey Proskuryakov.
2645
2646         * page/DragController.cpp:
2647         (WebCore::DragController::operationForLoad): If we drag over a PluginDocument, check if its PluginView
2648         claims to support navigation resulting from a drag (only PDFPlugin will for now). If it does, allow the drag.
2649         * plugins/PluginViewBase.h:
2650         (WebCore::PluginViewBase::shouldAllowNavigationFromDrags): Add shouldAllowNavigationFromDrags.
2651
2652 2012-12-21  Sheriff Bot  <webkit.review.bot@gmail.com>
2653
2654         Unreviewed, rolling out r138338.
2655         http://trac.webkit.org/changeset/138338
2656         https://bugs.webkit.org/show_bug.cgi?id=105621
2657
2658         speculative rollout because fast/dom/shadow/content-element-
2659         distributed-nodes.html is crashing on linux debug. (Requested
2660         by loislo on #webkit).
2661
2662         * WebCore.exp.in:
2663         * dom/DocumentFragment.h:
2664         * dom/Node.cpp:
2665         (WebCore::Node::documentFragmentIsShadowRoot):
2666         (WebCore):
2667         * dom/Node.h:
2668         (Node):
2669         (WebCore::Node::isShadowRoot):
2670         * dom/ShadowRoot.h:
2671
2672 2012-12-21  Adam Bergkvist  <adam.bergkvist@ericsson.com>
2673
2674         MediaStream API: Update the MediaStream constructor
2675         https://bugs.webkit.org/show_bug.cgi?id=98416
2676
2677         Reviewed by Adam Barth.
2678
2679         Updated the MediaStream constructor to support the more general argument
2680         list from the latest Media Capture and Streams specification:
2681         http://dev.w3.org/2011/webrtc/editor/getusermedia.html
2682
2683         Added more test cases to existing tests.
2684
2685         * Modules/mediastream/MediaStream.cpp:
2686         (WebCore::containsSource):
2687         (WebCore):
2688         (WebCore::processTrack):
2689         (WebCore::createFromSourceVectors):
2690         (WebCore::MediaStream::create):
2691         * Modules/mediastream/MediaStream.h:
2692         * Modules/mediastream/MediaStream.idl:
2693
2694 2012-12-20  Ryosuke Niwa  <rniwa@webkit.org>
2695
2696         More fix after r138348.
2697
2698         * platform/network/cf/SocketStreamHandleCFNet.cpp:
2699         (WebCore::SocketStreamHandle::createStreams):
2700
2701 2012-12-20  Alexey Proskuryakov  <ap@apple.com>
2702
2703         Disable Nagle algorithm on WebSocket implementation for CF.
2704         https://bugs.webkit.org/show_bug.cgi?id=102079
2705
2706         Build fix. Disable the new code on Lion, _kCFStreamSocketSetNoDelay apparently
2707         cannot be used on this OS version.
2708
2709         * platform/network/cf/SocketStreamHandleCFNet.cpp:
2710         (WebCore::SocketStreamHandle::createStreams):
2711
2712 2012-12-20  KyungTae Kim  <ktf.kim@samsung.com>
2713
2714         Fix build warnings related with gstreamer
2715         https://bugs.webkit.org/show_bug.cgi?id=105614
2716
2717         Reviewed by Kentaro Hara.
2718
2719         The below functions have unused parameters.
2720         Remove the parameter names to fix 'unused parameter' build warnings.
2721
2722         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
2723         (WebCore::onGStreamerWavparsePadAddedCallback):
2724         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
2725         (WebCore::messageCallback):
2726         (WebCore::onGStreamerDeinterleavePadAddedCallback):
2727         (WebCore::onGStreamerDeinterleaveReadyCallback):
2728         (WebCore::onGStreamerDecodebinPadAddedCallback):
2729
2730 2012-12-20  Takashi Toyoshima  <toyoshim@chromium.org>
2731
2732         Disable Nagle algorithm on WebSocket implementation for CF.
2733         https://bugs.webkit.org/show_bug.cgi?id=102079
2734
2735         Reviewed by Alexey Proskuryakov.
2736
2737         Set TCP_NODELAY on CFWriteStream for SocketStreamHandle to improve
2738         communication latency. Combination of Nagle and delayed-ACK could
2739         affect performance in some environment, e.g., over Wifi network.
2740
2741         * platform/network/cf/SocketStreamHandleCFNet.cpp:
2742         (WebCore::SocketStreamHandle::createStreams):
2743
2744 2012-12-20  Huang Dongsung  <luxtella@company100.net>
2745
2746         [WebGL][EFL][Qt][GTK] Jelly fishes leave trails on webgl canvas.
2747         https://bugs.webkit.org/show_bug.cgi?id=105326
2748
2749         Reviewed by Noam Rosenthal.
2750
2751         Clear a drawing buffer after compositing if preserveDrawingBuffer is
2752         false.
2753         http://www.khronos.org/registry/webgl/specs/latest/#2.2
2754
2755         No new tests. Covered by existing webgl-preserve-drawing-buffer-repaint test.
2756
2757         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
2758         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
2759         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
2760         (GraphicsContext3DPrivate::copyToGraphicsSurface):
2761         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2762         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
2763         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
2764
2765 2012-12-20  Filip Pizlo  <fpizlo@apple.com>
2766
2767         Create a variable name for a RAII scope so it doesn't die immediately.
2768
2769         Reviewed by Sam Weinig.
2770
2771         No new tests.
2772
2773         * html/HTMLMediaElement.cpp:
2774         (WebCore::HTMLMediaElement::textTrackAddCues):
2775         (WebCore::HTMLMediaElement::textTrackRemoveCues):
2776         (WebCore::HTMLMediaElement::removeTrack):
2777         (WebCore::HTMLMediaElement::removeAllInbandTracks):
2778
2779 2012-12-20  Elliott Sprehn  <esprehn@chromium.org>
2780
2781         Replace documentFragmentIsShadowRoot with isTreeScope
2782         https://bugs.webkit.org/show_bug.cgi?id=105345
2783
2784         Reviewed by Dimitri Glazkov.
2785
2786         We can replace documentFragmentIsShadowRoot with isTreeScope() which is
2787         trival to detect by checking treeScope()->rootNode() == this;
2788
2789         No new tests, just refactoring.
2790
2791         * WebCore.exp.in:
2792         * dom/DocumentFragment.h:
2793         (DocumentFragment):
2794         * dom/Node.cpp:
2795         (WebCore::Node::isTreeScope):
2796         * dom/Node.h:
2797         (Node):
2798         (WebCore::Node::isShadowRoot):
2799         * dom/ShadowRoot.h:
2800         (ShadowRoot):
2801
2802 2012-12-20  Rik Cabanier  <cabanier@adobe.com>
2803
2804         Add canvas blending modes using Core Graphics
2805         https://bugs.webkit.org/show_bug.cgi?id=100070
2806
2807         Reviewed by Dirk Schulze.
2808
2809         globalCompositeOperation is extended so it takes blend modes as well as compositing operators.
2810         This patch adds an implementation for the Core Graphics port.
2811
2812         Tests: fast/canvas/canvas-blend-image.html
2813                fast/canvas/canvas-blend-solid.html
2814
2815         * html/canvas/CanvasRenderingContext2D.cpp:
2816         (WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation): Passed blendMode to underlying layer.
2817         (WebCore::CanvasRenderingContext2D::drawImage): Passed blendMode to underlying drawImage call.
2818         (WebCore::CanvasRenderingContext2D::drawImageFromRect): Passed blendMode to platofrm layer.
2819         * html/canvas/CanvasRenderingContext2D.h:
2820         (CanvasRenderingContext2D): Eextended drawImage with new blendmode parameter.
2821         * platform/graphics/cg/GraphicsContextCG.cpp:
2822         (WebCore::GraphicsContext::setPlatformCompositeOperation): Passed blendmode to Core Graphics API.
2823
2824 2012-12-20  KyungTae Kim  <ktf.kim@samsung.com>
2825
2826         Percentage min/max width replaced element may incorrectly rendered
2827         https://bugs.webkit.org/show_bug.cgi?id=105264
2828
2829         Reviewed by Tony Chang.
2830
2831         To make do not include percentage min width in preferred logical width calculation,
2832         because we cannot resolve it for preferred width.
2833
2834         Test: fast/css/percent-min-width-img-src-change.html
2835
2836         * rendering/RenderBox.cpp:
2837         (WebCore::RenderBox::computeReplacedLogicalWidth):
2838         Modify includeMaxWidth parameter to shouldComputePreferred.
2839         (WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth):
2840         Modify includeMaxWidth parameter to shouldComputePreferred.
2841         If shouldComputePreferred is ComputePreferred, 
2842         don't use minLogicalWidth or maxLogicalWidth if they are percent type.
2843         * rendering/RenderBox.h:
2844         (RenderBox):
2845         * rendering/RenderReplaced.cpp:
2846         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
2847         Modify includeMaxWidth parameter to shouldComputePreferred.
2848         (WebCore::RenderReplaced::computeMaxPreferredLogicalWidth):
2849         Modify from set includeMaxWidth=false to set shouldComputePreferred=ComputePreferred.
2850         * rendering/RenderReplaced.h:
2851         (RenderReplaced):
2852         * rendering/RenderSVGRoot.cpp:
2853         (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
2854         Modify includeMaxWidth parameter to shouldComputePreferred.
2855         * rendering/RenderSVGRoot.h:
2856         (RenderSVGRoot):
2857         * rendering/RenderVideo.cpp:
2858         (WebCore::RenderVideo::computeReplacedLogicalWidth):
2859         Modify includeMaxWidth parameter to shouldComputePreferred.
2860         * rendering/RenderVideo.h:
2861         (RenderVideo):
2862
2863 2012-12-20  Alexey Proskuryakov  <ap@apple.com>
2864
2865         REGRESSION (r138191): Tests crash in ResourceRequest::setStorageSession
2866         https://bugs.webkit.org/show_bug.cgi?id=105563
2867
2868         Reviewed by Brady Eidson.
2869
2870         Partially fixes crashing http/tests/appcache/main-resource-redirect.html
2871         (but there is an unrelated regression affecting this test).
2872
2873         * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::willSendRequest):
2874         * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::willSendRequest):
2875         The client can make the object get destoryed, protect it to avoid accessing deleted memory.
2876
2877 2012-12-20  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
2878
2879         [EFL] [WebGL] [Wk2] Contents are not rendered properly.
2880         https://bugs.webkit.org/show_bug.cgi?id=104664
2881
2882         Reviewed by Noam Rosenthal.
2883
2884         WebGL pages that render more than one frame are broken. Only 1st
2885         frame comes to the UI side. All webgl repaint tests fail because
2886         of this.
2887         Specification of EXT_texture_from_pixmap extension here
2888         http://www.opengl.org/registry/specs/EXT/texture_from_pixmap.txt
2889         says, that:
2890         "The contents of the texture after the drawable has been bound are defined
2891         as the result of all rendering that has completed before the call to
2892         glXBindTexImageEXT."
2893         It means that in order to get updates for every frame glXBindTexImageEXT has
2894         to be called on every frame update.
2895
2896         Covered by existing fast/canavs/webgl/*repaint tests.
2897
2898         * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
2899         (WebCore::GraphicsSurfacePrivate::isReceiver):
2900         (WebCore::GraphicsSurface::platformSwapBuffers):
2901         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
2902         (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
2903
2904 2012-12-20  Ryuan Choi  <ryuan.choi@samsung.com>
2905
2906         [EFL] Build break with latest EFL libraries.
2907         https://bugs.webkit.org/show_bug.cgi?id=104827
2908
2909         Reviewed by Laszlo Gombos.
2910
2911         The eo EFL package is introduced and evas and ecore use it since 1.8.
2912         While introducing Eo, EFL changed several structures of Evas and Ecore
2913         from own specific class to Eo.
2914
2915         So, this patch adds FindEo and changes declaration of Evas, Evas_Object,
2916         Ecore_Timer to build with latest EFL libraries.
2917
2918         * PlatformEfl.cmake: Includes eo EFL library.
2919         * platform/Widget.h: Modified declaration of Evas and Evas_Object.
2920         In addition, removed unnecessary declaration.
2921         * platform/efl/EflScreenUtilities.h: Modified declaration of Evas.
2922         * platform/efl/RenderThemeEfl.h: Removed unnecessary declaration.
2923         * platform/graphics/Icon.h: Ditto.
2924         * platform/graphics/Image.h: Modified declaration of Evas and Evas_Object.
2925
2926 2012-12-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2927
2928         Unreviewed, rolling out r138270.
2929         http://trac.webkit.org/changeset/138270
2930         https://bugs.webkit.org/show_bug.cgi?id=105589
2931
2932         Many media tests are failing/crashing intermittently, often
2933         pointing at WebCore::HTMLTrackElement::didCompleteLoad as
2934         culprit (Requested by dino_ on #webkit).
2935
2936         * html/HTMLMediaElement.cpp:
2937         (WebCore::HTMLMediaElement::textTrackModeChanged):
2938         * html/HTMLTrackElement.cpp:
2939         (WebCore::HTMLTrackElement::HTMLTrackElement):
2940         (WebCore::HTMLTrackElement::insertedInto):
2941         (WebCore::HTMLTrackElement::parseAttribute):
2942         (WebCore::HTMLTrackElement::scheduleLoad):
2943         (WebCore::HTMLTrackElement::textTrackModeChanged):
2944         * html/HTMLTrackElement.h:
2945         * html/track/TextTrack.cpp:
2946         * html/track/TextTrack.h:
2947
2948 2012-12-20  Pratik Solanki  <psolanki@apple.com>
2949
2950         Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
2951         https://bugs.webkit.org/show_bug.cgi?id=105578
2952
2953         Reviewed by Alexey Proskuryakov.
2954
2955         * loader/ResourceBuffer.cpp: Remove duplicate append() call that was under the wrong ifdef.
2956         * loader/ResourceBuffer.h:
2957
2958 2012-12-20  Elliott Sprehn  <esprehn@chromium.org>
2959
2960         RenderBlock hit testing should ignore PseudoElements
2961         https://bugs.webkit.org/show_bug.cgi?id=105545
2962
2963         Reviewed by Eric Seidel.
2964
2965         Use nonPseudoNode() in hit testing code in RenderBlock and RenderBox so
2966         that when clicking on the box generated by a pseudo element we never
2967         generate a Position for the PseudoElement, but instead for the
2968         generating node.
2969
2970         Test: fast/css-generated-content/block-and-box-hit-testing.html
2971
2972         * rendering/RenderBlock.cpp:
2973         (WebCore::RenderBlock::positionForBox):
2974         (WebCore::isEditingBoundary):
2975         (WebCore::positionForPointRespectingEditingBoundaries):
2976         * rendering/RenderBox.cpp:
2977         (WebCore::RenderBox::positionForPoint):
2978
2979 2012-12-20  Stephen Chenney  <schenney@chromium.org>
2980
2981         SVG: <altglpyh> for a surrogate pair character in a ligature fails
2982         https://bugs.webkit.org/show_bug.cgi?id=102969
2983
2984         Reviewed by Dirk Schulze.
2985
2986         There are two issues with SVG <altglyph> tags applied to surrogate
2987         fonts, particularly when mixed with non-standard forms (arabic,
2988         vertical, etc.).
2989
2990         First, there is an assertion that is invalid when an alt glyph is
2991         substituted for the surrogate, because the text chunk that is consumed
2992         by an alt glyph is the entire run, whereas we assert that a
2993         surrogate's chunk is length 2 regardless. That assertion has been
2994         removed.
2995
2996         Second, when an arabic character or some other characters requiring a
2997         special form appears before the surrogate pair character inside the alt
2998         glyph tag, we reject the alt glyph because it is not compatible with the form.
2999         However, when we process the next character - the surrogate pair - we
3000         do accept the alt glyph. This breaks all the indexes because we have
3001         already consumed part of the run that is now considered the alt glyph.
3002         Chaos ensues. This patch forces us to always accept alt glyph
3003         characters (assuming we have some glyph to draw). This better matches
3004         the intent of the spec - if someone specifies an alt glyph they are
3005         explicitly stating which glyph they want used. We should not argue
3006         with the content author.
3007
3008         Tests: svg/text/alt-glyph-for-surrogate-pair-expected.svg
3009                svg/text/alt-glyph-for-surrogate-pair.svg
3010
3011         * rendering/svg/SVGTextLayoutEngine.cpp:
3012         (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath): Fix some poor code.
3013         * rendering/svg/SVGTextMetricsBuilder.cpp:
3014         (WebCore::SVGTextMetricsBuilder::advanceSimpleText): Remove an assert that is not always valid.
3015         * svg/SVGFontData.cpp:
3016         (WebCore::SVGFontData::applySVGGlyphSelection): Always return an altGlyph when found. Do not check it compatibility.
3017
3018 2012-12-20  Adam Klein  <adamk@chromium.org>
3019
3020         Properly process <template> end tags when in TemplateContentsMode
3021         https://bugs.webkit.org/show_bug.cgi?id=105556
3022
3023         Reviewed by Eric Seidel.
3024
3025         * html/parser/HTMLTreeBuilder.cpp:
3026         (WebCore::HTMLTreeBuilder::processEndTag): Take care of the FIXME and just call
3027         processTemplateEndTag() instead of incorrectly special-casing the end tag behavior in some cases.
3028
3029 2012-12-20  Kondapally Kalyan  <kalyan.kondapally@intel.com>
3030
3031         [EFL][WebGL][Wk2] Replace HAVE(GLX) checks with USE(GLX)
3032         https://bugs.webkit.org/show_bug.cgi?id=105431
3033
3034         Reviewed by Kenneth Rohde Christiansen.
3035
3036         This patch changes the check HAVE(GLX) to USE(GLX).
3037         This would enable us to choose our preferred GL backend during build time.
3038         This patch also adds an additional api to query the shared buffer handle.
3039         Buffer handle is not same as gl surface and would depend on how the content is
3040         backed up.
3041
3042         * platform/graphics/opengl/GLDefs.h:
3043         (WebCore):
3044         * platform/graphics/opengl/GLPlatformContext.cpp:
3045         (WebCore::GLPlatformContext::createContext):
3046         (WebCore::GLPlatformContext::createOffScreenContext):
3047         (WebCore::GLPlatformContext::createCurrentContextWrapper):
3048         * platform/graphics/opengl/GLPlatformSurface.cpp:
3049         (WebCore::GLPlatformSurface::createOffscreenSurface):
3050         (WebCore::GLPlatformSurface::createTransportSurface):
3051         (WebCore::GLPlatformSurface::GLPlatformSurface):
3052         (WebCore::GLPlatformSurface::handle):
3053         (WebCore):
3054         (WebCore::GLPlatformSurface::drawable):
3055         * platform/graphics/opengl/GLPlatformSurface.h:
3056         (GLPlatformSurface):
3057         * platform/graphics/surfaces/glx/GLXContext.cpp:
3058         * platform/graphics/surfaces/glx/GLXContext.h:
3059         * platform/graphics/surfaces/glx/GLXSurface.cpp:
3060         (WebCore::GLXTransportSurface::GLXTransportSurface):
3061         (WebCore::GLXTransportSurface::destroy):
3062         (WebCore::GLXPBuffer::initialize):
3063         (WebCore::GLXPBuffer::freeResources):
3064         * platform/graphics/surfaces/glx/GLXSurface.h:
3065         * platform/graphics/surfaces/glx/GLXWindowResources.h:
3066         * platform/graphics/surfaces/glx/X11WindowResources.cpp:
3067         (WebCore::X11OffScreenWindow::X11OffScreenWindow):
3068         (WebCore::X11OffScreenWindow::setGeometry):
3069         (WebCore::X11OffScreenWindow::createOffscreenWindow):
3070         (WebCore::X11OffScreenWindow::destroyWindow):
3071         * platform/graphics/surfaces/glx/X11WindowResources.h:
3072         (WebCore):
3073         (DummySharedResources):
3074         (WebCore::DummySharedResources::create):
3075         (WebCore::DummySharedResources::nativeDisplay):
3076         (WebCore::DummySharedResources::pBufferContextConfig):
3077         (WebCore::DummySharedResources::surfaceContextConfig):
3078         (WebCore::DummySharedResources::DummySharedResources):
3079         (WebCore::DummySharedResources::~DummySharedResources):
3080
3081 2012-12-20  Emil A Eklund  <eae@chromium.org>
3082
3083         [flexbox] Fix handling of very large flex grow/shrink values
3084         https://bugs.webkit.org/show_bug.cgi?id=105579
3085
3086         Reviewed by Tony Chang.
3087
3088         Add isfinite to childSize calculation in RenderFlexibleBox::
3089         resolveFlexibleLengths to avoid overflow.
3090
3091         Covered by css3/flexbox/flex-algorithm.html.
3092
3093         * rendering/RenderFlexibleBox.cpp:
3094         (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
3095         Check if value is finite before adding to childSize.
3096
3097 2012-12-20  Sheriff Bot  <webkit.review.bot@gmail.com>
3098
3099         Unreviewed, rolling out r138265.
3100         http://trac.webkit.org/changeset/138265
3101         https://bugs.webkit.org/show_bug.cgi?id=105586
3102
3103         Accidentally committed extra code that is not reviewed and
3104         shouldn't go with this commit. (Requested by ostap on
3105         #webkit).
3106
3107         * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
3108         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
3109         (WebCore::GraphicsSurfacePrivate::createPixmap):
3110         (GraphicsSurfacePrivate):
3111         (WebCore::GraphicsSurface::platformSwapBuffers):
3112         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
3113         (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
3114
3115 2012-12-20  Ryosuke Niwa  <rniwa@webkit.org>
3116
3117         REGRESSION(r133820?): SimplifyMarkupTest API test asserts
3118         https://bugs.webkit.org/show_bug.cgi?id=105370
3119
3120         Reviewed by Simon Fraser.
3121
3122         The bug was caused by SimplifyMarkupCommand::doApply calling removeNodePreservingChildren on nodes
3123         that have already been removed. We normally check this condition in pruneSubsequentAncestorsToRemove
3124         but we weren't checking it when there were no ancestor to remove because we early exited in that case.
3125
3126         Fixed the bug by doing the early exit for when the node's parent had already been removed first.
3127
3128         Test: TestWebKitAPI/Tests/mac/SimplifyMarkup.mm
3129
3130         * editing/SimplifyMarkupCommand.cpp:
3131         (WebCore::SimplifyMarkupCommand::doApply):
3132         (WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): Also removed an unused variable
3133         nodeAfterHighestAncestorToRemove.
3134
3135 2012-12-20  Antti Koivisto  <antti@apple.com>
3136
3137         Font description not synchronized correctly on orientation affecting property changes
3138         https://bugs.webkit.org/show_bug.cgi?id=105533
3139
3140         Reviewed by Enrica Casucci.
3141
3142         In StyleResolver checkForOrientationChange() function checks if the new computed orientation differs from the parent
3143         orientation and updates the style's font description only if it does. This is not correct as equal values do not guarantee
3144         the new font description is actually up to date. We can leave the function with the computed orientation and the font
3145         description still out of sync.
3146         
3147         Fix by bailing out fast only if the font description is already in sync.
3148         
3149         No layout test yet, verified with a test app.
3150
3151         * css/StyleResolver.cpp:
3152         (WebCore::checkForOrientationChange):
3153         (WebCore::StyleResolver::updateFont):
3154
3155 2012-12-20  Ryan Sleevi  <rsleevi@chromium.org>
3156
3157         window.crypto.getRandomValues should return the input ArrayBufferView
3158         https://bugs.webkit.org/show_bug.cgi?id=104845
3159
3160         The W3C Web Crypto API FPWD, as well as the WHATWG February 2012 draft,
3161         define crypto.getRandomValues() as returning the input ArrayBufferView,
3162         to allow function call chaining. Update the implementation to match
3163         the current spec, rather than the old spec of void/undefined.
3164
3165         Reviewed by Kentaro Hara.
3166
3167         Test: security/crypto-random-values-types.html
3168
3169         * GNUmakefile.list.am:
3170         * Target.pri:
3171         * UseJSC.cmake:
3172         * WebCore.gypi:
3173         * WebCore.xcodeproj/project.pbxproj:
3174         * bindings/js/JSBindingsAllInOne.cpp:
3175         * bindings/js/JSCryptoCustom.cpp: Added.
3176         (WebCore):
3177         (WebCore::JSCrypto::getRandomValues):
3178         Added custom getRandomValues implementation so that the input wrapped
3179         ArrayBufferView can be returned directly to the caller. This is to
3180         preserve the underlying type and indexing accessor for the TypedArray
3181         subclass.
3182         * bindings/v8/custom/V8CryptoCustom.cpp: Added.
3183         (WebCore):
3184         (WebCore::V8Crypto::getRandomValuesCallback):
3185         Added custom getRandomValues implementation so that the input wrapped
3186         ArrayBufferView can be returned directly to the caller. This is to
3187         preserve the underlying type and indexing accessor for the TypedArray
3188         subclass.
3189         * page/Crypto.idl:
3190
3191 2012-12-20  Erik Arvidsson  <arv@chromium.org>
3192
3193         CodeGen: Make [Reflect] use getIdAttribute and getNameAttribute
3194         https://bugs.webkit.org/show_bug.cgi?id=105549
3195
3196         Reviewed by Andreas Kling.
3197
3198         Let the codegen use getIdAttribute and getNameAttribute when we know the attribute
3199         is HTMLNames::idAttr or HTMLNames::nameAttr respectively. The more specialized functions
3200         do not search for the attribute if it knows that the element does not have that attribute
3201         speeding up the case where id or name are not present.
3202
3203         This improves Dromaeo/dom-attr by 5% and Bindings/undefined-id-getter by 2% 
3204
3205         No new tests. No change in behavior
3206
3207         * bindings/scripts/CodeGenerator.pm:
3208
3209 2012-12-20  Erik Arvidsson  <arv@chromium.org>
3210
3211         fastAttributeLookupAllowed: classAttr is only animatable by SVG styled elements
3212         https://bugs.webkit.org/show_bug.cgi?id=105565
3213
3214         Reviewed by Eric Seidel.
3215
3216         When it comes to determining if we can use fastGetAttribute we should not penalize
3217         all classAttr access just because some SVG styled elements does funky things with
3218         className.
3219
3220         This makes classAttr considered animatable only for styled SVG elements.
3221
3222         No new tests. No change in behavior.
3223
3224         * bindings/scripts/CodeGenerator.pm:
3225         * dom/Element.cpp:
3226         * svg/SVGElement.cpp:
3227         * svg/SVGElement.h:
3228
3229 2012-12-20  Huang Dongsung  <luxtella@company100.net>
3230
3231         [TexMap] Remove ParentChange in TextureMapperLayer.
3232         https://bugs.webkit.org/show_bug.cgi?id=105494
3233
3234         Reviewed by Noam Rosenthal.
3235
3236         ParentChange is useless, because ChildrenChange is enough. In addition,
3237         GraphicsLayer uses setParent() method internally. This patch copies
3238         GraphicsLayer::setChildren() into TextureMapperLayer::setChildren().
3239
3240         No new tests. Covered by existing tests.
3241
3242         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
3243         (WebCore):
3244         (WebCore::GraphicsLayerTextureMapper::setChildren):
3245           Match the similar style of replaceChild().
3246         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
3247         (GraphicsLayerTextureMapper):
3248         * platform/graphics/texmap/TextureMapperLayer.cpp:
3249         (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
3250         (WebCore::TextureMapperLayer::setChildren):
3251           Copied from GraphicsLayer::setChildren().
3252         (WebCore):
3253         (WebCore::TextureMapperLayer::addChild):
3254           Copied from GraphicsLayer::addChild().
3255         (WebCore::TextureMapperLayer::removeFromParent):
3256           Copied from GraphicsLayer::removeFromParent().
3257         (WebCore::TextureMapperLayer::removeAllChildren):
3258           Copied from GraphicsLayer::removeAllChildren().
3259         * platform/graphics/texmap/TextureMapperLayer.h:
3260         (TextureMapperLayer):
3261
3262 2012-12-20  Alec Flett  <alecflett@chromium.org>
3263
3264         IndexedDB: Cursor and IndexWriter cleanup for refactor
3265         https://bugs.webkit.org/show_bug.cgi?id=105449
3266
3267         Reviewed by Tony Chang.
3268
3269         This is a cleanup of some code to make the refactor that is coming
3270         in https://bugs.webkit.org/show_bug.cgi?id=102741 cleaner. Some
3271         CursorType assertions have been removed because the code will be
3272         used in more generic circumstances in a future patch.
3273
3274         The previously-private IndexWriter has been pulled into
3275         IDBObjectStoreBackendImpl and made to just use IDB*Metadata
3276         so it can be reused later.
3277
3278         No new tests as this does not change the logic of executing code.
3279
3280         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
3281         (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
3282         (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
3283         * Modules/indexeddb/IDBCursorBackendImpl.h:
3284         (WebCore::IDBCursorBackendImpl::create):
3285         (WebCore::IDBCursorBackendImpl::value):
3286         (IDBCursorBackendImpl):
3287         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
3288         (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::create):
3289         (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::OpenIndexCursorOperation):
3290         (IDBIndexBackendImpl::OpenIndexCursorOperation):
3291         (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::perform):
3292         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
3293         (WebCore::IDBObjectStoreBackendImpl::IndexWriter::verifyIndexKeys):
3294         (WebCore::IDBObjectStoreBackendImpl::IndexWriter::writeIndexKeys):
3295         (WebCore::IDBObjectStoreBackendImpl::IndexWriter::addingKeyAllowed):
3296         (WebCore::IDBObjectStoreBackendImpl::makeIndexWriters):
3297         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
3298         (IndexWriter):
3299         (WebCore::IDBObjectStoreBackendImpl::IndexWriter::IndexWriter):
3300         (IDBObjectStoreBackendImpl):
3301         * Modules/indexeddb/IDBRequest.cpp:
3302         (WebCore::IDBRequest::IDBRequest):
3303         (WebCore::IDBRequest::setCursorDetails):
3304         (WebCore::IDBRequest::setResultCursor):
3305         (WebCore::IDBRequest::onSuccess):
3306         * Modules/indexeddb/IDBRequest.h:
3307         (IDBRequest):
3308
3309 2012-12-20  Alexey Proskuryakov  <ap@apple.com>
3310
3311         REGRESSION (r138191): Tests fail in ResourceRequest::setStorageSession
3312         https://bugs.webkit.org/show_bug.cgi?id=105563
3313
3314         Reviewed by Sam Weinig.
3315
3316         * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::willSendRequest):
3317         * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::willSendRequest):
3318         Don't try to appky a session if client canceled the request by setting it ot a null one.
3319
3320         * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::setStorageSession):
3321         * platform/network/mac/ResourceRequestMac.mm: (WebCore::ResourceRequest::setStorageSession):
3322         Update platform request, so that the session does not get lost once it's updated later.
3323
3324 2012-12-20  Nate Chapin  <japhet@chromium.org>
3325
3326         Rename shouldBufferData to dataBufferingPolicy
3327         https://bugs.webkit.org/show_bug.cgi?id=105450
3328
3329         Reviewed by Alexey Proskuryakov.
3330
3331         No new tests, simple rename.
3332
3333         * html/MediaDocument.cpp:
3334         (WebCore::MediaDocumentParser::createDocumentStructure):
3335         * html/PluginDocument.cpp:
3336         (WebCore::PluginDocumentParser::appendBytes):
3337         * inspector/InspectorResourceAgent.cpp:
3338         (WebCore::InspectorResourceAgent::didReceiveData):
3339         * loader/DocumentThreadableLoader.cpp:
3340         (WebCore::DocumentThreadableLoader::loadRequest):
3341         * loader/MainResourceLoader.cpp:
3342         (WebCore::MainResourceLoader::setDataBufferingPolicy):
3343         * loader/MainResourceLoader.h:
3344         (MainResourceLoader):
3345         * loader/ResourceLoader.cpp:
3346         (WebCore::ResourceLoader::setDataBufferingPolicy):
3347         (WebCore::ResourceLoader::addData):
3348         (WebCore::ResourceLoader::willStopBufferingData):
3349         * loader/ResourceLoader.h:
3350         (ResourceLoader):
3351         * loader/ResourceLoaderOptions.h:
3352         (WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
3353         (ResourceLoaderOptions):
3354         * loader/cache/CachedRawResource.cpp:
3355         (WebCore::CachedRawResource::data):
3356         (WebCore::CachedRawResource::setDataBufferingPolicy):
3357         (WebCore::CachedRawResource::canReuse):
3358         * loader/cache/CachedRawResource.h:
3359         (CachedRawResource):
3360         * loader/cache/CachedResource.h:
3361         (WebCore::CachedResource::dataBufferingPolicy):
3362         * loader/mac/ResourceLoaderMac.mm:
3363         (WebCore::ResourceLoader::didReceiveDataArray):
3364         * page/EventSource.cpp:
3365         (WebCore::EventSource::connect):
3366
3367 2012-12-19  Dean Jackson  <dino@apple.com>
3368
3369         Track menu in wrong location when fullscreen
3370         https://bugs.webkit.org/show_bug.cgi?id=105234
3371
3372         Reviewed by Eric Carlson.
3373
3374         Add a rule to position the captions menu in the correct location
3375         when the <video> is fullscreen. Also a drive-by removal of unnecessary
3376         CSS selectors, and changing an encoded PNG into an SVG.
3377
3378         * css/fullscreenQuickTime.css:
3379         (video:-webkit-full-screen::-webkit-media-controls-closed-captions-container): Add a rule to position
3380         the menu when in fullscreen.
3381         * css/mediaControlsQuickTime.css: Remove the unnecessary <audio> selectors.
3382         (video::-webkit-media-controls-toggle-closed-captions-button):
3383         (video::-webkit-media-controls-closed-captions-container):
3384         (video::-webkit-media-controls-closed-captions-track-list):
3385
3386 2012-12-19  Dean Jackson  <dino@apple.com>
3387
3388         Follow WebVTT line breaking rules
3389         https://bugs.webkit.org/show_bug.cgi?id=105496
3390
3391         Reviewed by Eric Carlson.
3392
3393         WebVTT requires that captions never overflow their containers. In other
3394         words, that it is ok to break within words rather than hide content.
3395         Implement this by using CSS's word-break property.
3396
3397         Test: media/track/track-word-breaking.html
3398
3399         * css/mediaControls.css:
3400         (video::-webkit-media-text-track-container): Add word-break.
3401         * css/mediaControlsQuickTime.css: Drive-by cleanup to make sure selection doesn't happen.
3402         (audio::-webkit-media-controls-closed-captions-container, video::-webkit-media-controls-closed-captions-container):
3403         (audio::-webkit-media-controls-closed-captions-track-list, video::-webkit-media-controls-closed-captions-track-list):
3404
3405 2012-12-20  James Simonsen  <simonjam@chromium.org>
3406
3407         [Resource Timing] 304 responses should show up in the timing buffer
3408         https://bugs.webkit.org/show_bug.cgi?id=105490
3409
3410         Reviewed by Tony Gentilcore.
3411
3412         Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_cached.html
3413
3414         * loader/cache/CachedResourceLoader.cpp:
3415         (WebCore::CachedResourceLoader::loadDone):
3416
3417 2012-12-19  Simon Fraser  <simon.fraser@apple.com>
3418
3419         Lots of sticky tests failing in WK2
3420         https://bugs.webkit.org/show_bug.cgi?id=105464
3421
3422         Reviewed by Brady Eidson.
3423
3424         Fixing this bug altered the timing of InternalSettings::Backup()
3425         and restoreTo(), such that 'canStartMedia' on Page would get saved as false,
3426         and then restored as false, which breaks all media tests.
3427         
3428         'canStartMedia' is set to false initially by the WebPage constructor, and is also
3429         set to false when the WKView leaves the window, so treating it like other Settings
3430         that can be saved and restored is unreliable, as seen here. It's easier and simpler
3431         to just always reset it to 'true' between tests.
3432
3433         * testing/InternalSettings.cpp:
3434         (WebCore::InternalSettings::Backup::Backup):
3435         (WebCore::InternalSettings::Backup::restoreTo):
3436         (WebCore::InternalSettings::InternalSettings):
3437         (WebCore::InternalSettings::reset):
3438         * testing/InternalSettings.h:
3439         (Backup):
3440
3441 2012-12-20  Erik Arvidsson  <arv@chromium.org>
3442
3443         REGRESSION(r138263): Don't use fastGetAttribute for HTMLNames::classAttr because it breaks on SVGElement
3444         https://bugs.webkit.org/show_bug.cgi?id=105555
3445
3446         Reviewed by Tony Chang.
3447
3448         The code generated generated code that uses fastGetAttribute for the className WebIDL attribute getter.
3449         However, this attribute is animatable in SVG so we cannot use the fast function for it.
3450
3451         No new tests. The assert is no longer hit.
3452