[chromium] Remove alwaysReserveTextures code - it doesn't do anything
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-08-16  James Robinson  <jamesr@chromium.org>
2
3         [chromium] Remove alwaysReserveTextures code - it doesn't do anything
4         https://bugs.webkit.org/show_bug.cgi?id=94183
5
6         Reviewed by Dimitri Glazkov.
7
8         LayerChromium::setAlwaysReservesTextures doesn't do anything and hasn't since the prioritized texture manager
9         landed. This deletes the associated code.
10
11         * platform/graphics/chromium/LayerChromium.cpp:
12         (WebCore::LayerChromium::LayerChromium):
13         * platform/graphics/chromium/LayerChromium.h:
14         (LayerChromium):
15
16 2012-08-16  Adam Barth  <abarth@webkit.org>
17
18         Unreviewed. Sort the xcodeproj file.
19
20         * WebCore.xcodeproj/project.pbxproj:
21
22 2012-08-16  Adam Barth  <abarth@webkit.org>
23
24         Unreviewed. Update bindings tests results from my recent VoidCallback
25         patch. The new result is correct.
26
27         * bindings/scripts/test/V8/V8TestCallback.cpp:
28
29 2012-08-16  Andrey Kosyakov  <caseq@chromium.org>
30
31         Web Inspector: CPU profiler status bar is broken.
32         https://bugs.webkit.org/show_bug.cgi?id=94212
33
34         Reviewed by Pavel Feldman.
35
36         - properly compute floating status bar buttons offset for profile and timeline panels,
37             taking actual number of panel status bar buttons and panel sidebar offset into account;
38
39         * inspector/front-end/ProfilesPanel.js:
40         (WebInspector.ProfilesPanel.prototype.get statusBarItems):
41         (WebInspector.ProfilesPanel.prototype.sidebarResized):
42         (WebInspector.ProfilesPanel.prototype.onResize):
43         * inspector/front-end/SplitView.js:
44         (WebInspector.SplitView.prototype.sidebarWidth):
45         * inspector/front-end/StatusBarButton.js:
46         * inspector/front-end/TimelinePanel.js:
47         (WebInspector.TimelinePanel.prototype.sidebarResized):
48         (WebInspector.TimelinePanel.prototype.onResize):
49
50 2012-08-16  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
51
52         Fix the Mac build.
53
54         Unreviewed build fix.
55
56         * WebCore.exp.in: Export FrameView::didFirstLayout()
57
58 2012-08-16  Konrad Piascik  <kpiascik@rim.com>
59
60         Add BB10 User Agent String to Web Inspector.
61         https://bugs.webkit.org/show_bug.cgi?id=94217
62
63         Reviewed by George Staikos.
64
65         Add the new BlackBerry 10 User Agent String and device metrics for
66         emulation.
67
68         * inspector/front-end/SettingsScreen.js:
69         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.get const):
70
71 2012-08-16  Marcelo Lira  <marcelo.lira@openbossa.org>
72
73         [Qt] Input method hints are not being set.
74         https://bugs.webkit.org/show_bug.cgi?id=92386
75
76         Reviewed by Kenneth Rohde Christiansen.
77
78         Input method hints for an editable element must be obtained from a proper
79         HTML element. If the editable element is a complex one, it will have elements
80         in the Shadow DOM, and it's one of those that will be returned as the root
81         editable element. This works for editable DIVs, but not for INPUT elements.
82         Using Element::shadowHost() on the root editable element will provide the
83         needed HTML element, and for further clarity a method that does this was added
84         to FrameSelection.
85
86         * editing/FrameSelection.cpp:
87         (WebCore::FrameSelection::rootEditableElementRespectingShadowTree): Similar to
88         WebCore::FrameSelection::rootEditableElement, but returns the first ancestor of
89         the editable element outside the shadow tree.
90         (WebCore):
91         * editing/FrameSelection.h:
92         (FrameSelection):
93
94 2012-08-16  Zeno Albisser  <zeno@webkit.org>
95
96         Make GraphicsSurface double buffered by default.
97         https://bugs.webkit.org/show_bug.cgi?id=93252
98
99         Create only a single GraphicsSurface per canvas
100         on both supported platforms Mac/Linux.
101         The GraphicsSurface on Mac internally uses two IOSurface
102         to provide a front and a back buffer.
103         The GLX implementation of GraphicsSurface uses
104         an XWindow which already provides a front and a back buffer.
105
106         Reviewed by Noam Rosenthal.
107
108         * platform/graphics/qt/GraphicsContext3DQt.cpp:
109         (GraphicsContext3DPrivate):
110             Remove creation of second GraphicsSurface.
111         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
112         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
113         (WebCore):
114         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
115         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
116         * platform/graphics/surfaces/GraphicsSurface.cpp:
117         (WebCore::GraphicsSurface::create):
118             Adjust token type to uint64_t.
119         (WebCore::GraphicsSurface::exportToken):
120             Adjust return type to uint64_t.
121         (WebCore::GraphicsSurface::frontBuffer):
122         (WebCore):
123         (WebCore::GraphicsSurface::swapBuffers):
124             Add forwarding function to swap buffers inside GraphicsSurface.
125         * platform/graphics/surfaces/GraphicsSurface.h:
126         (GraphicsSurface):
127             Add SupportsSingleBuffered flag to allow for single buffered implementations.
128             Currently single buffered surfaces are either not implemented or disabled.
129         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
130             Move implementation details into GraphicsSurfacePrivate.
131             This way the platform specific code can be hidden in the specific cpp file
132             instead of polluting the global GraphicsSurface header.
133         (WebCore::createTexture):
134         (GraphicsSurfacePrivate):
135         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
136         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
137         (WebCore::GraphicsSurfacePrivate::swapBuffers):
138         (WebCore::GraphicsSurfacePrivate::token):
139         (WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
140         (WebCore::GraphicsSurfacePrivate::backBufferTextureID):
141         (WebCore::GraphicsSurfacePrivate::frontBuffer):
142         (WebCore::GraphicsSurfacePrivate::backBuffer):
143         (WebCore):
144         (WebCore::GraphicsSurface::platformExport):
145         (WebCore::GraphicsSurface::platformGetTextureID):
146         (WebCore::GraphicsSurface::platformCopyToGLTexture):
147         (WebCore::GraphicsSurface::platformCopyFromFramebuffer):
148         (WebCore::GraphicsSurface::platformFrontBuffer):
149         (WebCore::GraphicsSurface::platformSwapBuffers):
150         (WebCore::GraphicsSurface::platformCreate):
151         (WebCore::GraphicsSurface::platformImport):
152         (WebCore::ioSurfaceLockOptions):
153         (WebCore::GraphicsSurface::platformLock):
154         (WebCore::GraphicsSurface::platformUnlock):
155         (WebCore::GraphicsSurface::platformDestroy):
156         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
157         (WebCore::OffScreenRootWindow::get):
158         (WebCore::GraphicsSurfacePrivate::swapBuffers):
159             Make sure that framebuffer bindings remain consistent
160             after swapping buffers on the XWindow.
161         (WebCore::GraphicsSurface::platformExport):
162             Make sure the GLXPixmap is only bound to the texture once.
163         (WebCore::GraphicsSurface::platformGetTextureID):
164         (WebCore::GraphicsSurface::platformCopyFromFramebuffer):
165         (WebCore):
166         (WebCore::GraphicsSurface::platformFrontBuffer):
167             The GLX surface does not know how to destinguish between
168             the front and the back buffer by an id. This is not necessary
169             for GraphicsSurfaceGLX, because the texture can just be
170             read from the XWindow at any time.
171         (WebCore::GraphicsSurface::platformSwapBuffers):
172         (WebCore::GraphicsSurface::platformCreate):
173         (WebCore::GraphicsSurface::platformImport):
174         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
175             Remove code that was used for switching between two GraphicsSurfaces,
176             as this is now handled directly inside GraphicsSurface.
177         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
178         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
179         (WebCore::TextureMapperSurfaceBackingStore::setSurface):
180         (WebCore):
181         * platform/graphics/texmap/TextureMapperBackingStore.h:
182             Remove GraphicsSurfaceData struct. This class is not needed anymore
183             as we do not keep track of more than one GraphicsSurface at the time.
184         (WebCore):
185         (TextureMapperSurfaceBackingStore):
186         (WebCore::TextureMapperSurfaceBackingStore::graphicsSurface):
187         (WebCore::TextureMapperSurfaceBackingStore::TextureMapperSurfaceBackingStore):
188         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
189         (WebCore::TextureMapperPlatformLayer::graphicsSurfaceToken):
190
191 2012-08-16  Mike West  <mkwst@chromium.org>
192
193         Implement the form-action Content Security Policy directive.
194         https://bugs.webkit.org/show_bug.cgi?id=93777
195
196         Reviewed by Jochen Eisinger.
197
198         The CSP 1.1 editor's draft defines the 'form-action' directive as a
199         mechanism for whitelisting valid targets for form submission from a
200         protected resource. A web author might desire to restrict form
201         submissions to the same origin as the protected resource itself via
202         a Content Security Policy of "form-action 'self'", or ensure that all
203         submissions were sent over an SSL connection via "form-action https:".
204
205         Specification details available at: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#form-action--experimental
206
207         This experimental directive is gated on the ENABLE_CSP_NEXT flag, which
208         is currently only enabled in Chromium.
209
210         Tests: http/tests/security/contentSecurityPolicy/1.1/form-action-src-allowed.html
211                http/tests/security/contentSecurityPolicy/1.1/form-action-src-blocked.html
212                http/tests/security/contentSecurityPolicy/1.1/form-action-src-default-ignored.html
213                http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-allowed.html
214                http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked.html
215                http/tests/security/contentSecurityPolicy/1.1/form-action-src-javascript-blocked.html
216                http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked.html
217
218         * loader/FrameLoader.cpp:
219         (WebCore::FrameLoader::checkIfFormActionAllowedByCSP):
220             Adding a callback to FrameLoader in order to allow the
221             MainResourceLoader to check the relevant CSP status without knowing
222             anything about CSP.
223         (WebCore):
224         * loader/FrameLoader.h:
225         (FrameLoader):
226         * loader/MainResourceLoader.cpp:
227         (WebCore::MainResourceLoader::willSendRequest):
228             Check against the protected resource's Content Security Policy when
229             presented with a request that is itself a form submission, or is the
230             result of a redirect in response to a form submission. If CSP would
231             block the target, cancel the request.
232         * page/ContentSecurityPolicy.cpp:
233         (CSPDirectiveList):
234         (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
235             Added explanatory text to the source violation console warning that
236             specifically calls out sending form data (as opposed to "connect to"
237             or "load the").
238         (WebCore::CSPDirectiveList::allowFormAction):
239             Check a URL against a directive list's the 'form-action' source list.
240         (WebCore):
241         (WebCore::CSPDirectiveList::addDirective):
242             Recognize the 'form-action' CSP directive.
243         (WebCore::ContentSecurityPolicy::allowFormAction):
244             Public interface to check a form action.
245         * page/ContentSecurityPolicy.h:
246
247 2012-08-16  Arvid Nilsson  <anilsson@rim.com>
248
249         [BlackBerry] WebGL and Canvas fail to display after being restored from page cache
250         https://bugs.webkit.org/show_bug.cgi?id=94105
251
252         Reviewed by George Staikos.
253
254         The EGLImage was being destroyed when releasing layer resources on the
255         compositing thread, but the WebKit thread layer never found out and
256         failed to create a new image.
257
258         Fixed by extending the release layer resources mechanism to also make a
259         pass on the WebKit thread so that thread's layers have a chance to
260         delete their textures and related resources.
261
262         WebGL and canvas layers now take this opportunity to release their
263         textures so the EGLImage gets recreated when compositing commits
264         resume.
265
266         The only detail that deserves extra explanation is the ownership of the
267         EGLImage.
268
269         Since the EGLImage is created in updateTextureContentsIfNeeded() and
270         that one is always followed by commitPendingTextureUploads() which
271         transfers the EGLImage to the compositing thread layer's custody, the
272         EGLImage currently referenced by EGLImageLayerWebKitThread::m_image
273         should never be deleted by the WebKit thread layer.
274
275         Thus all we have to do in deleteFrontBuffer() is to set the m_image
276         member to 0 so the image gets recreated on the next commit. It will be
277         deleted by the part of releaseLayerResources() that executes on the
278         compositing thread (which, if you recall, was the original source of
279         this bug).
280
281         Reviewed internally by Filip Spacek.
282
283         PR 192899
284
285         Not currently testable by the BlackBerry testing infrastructure.
286
287         * platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
288         (WebCore::CanvasLayerWebKitThread::deleteTextures):
289         (WebCore):
290         * platform/graphics/blackberry/CanvasLayerWebKitThread.h:
291         (CanvasLayerWebKitThread):
292         * platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp:
293         (WebCore::EGLImageLayerWebKitThread::~EGLImageLayerWebKitThread):
294         (WebCore::EGLImageLayerWebKitThread::deleteFrontBuffer):
295         * platform/graphics/blackberry/EGLImageLayerWebKitThread.h:
296         (EGLImageLayerWebKitThread):
297         * platform/graphics/blackberry/LayerWebKitThread.cpp:
298         (WebCore::LayerWebKitThread::releaseLayerResources):
299         (WebCore):
300         * platform/graphics/blackberry/LayerWebKitThread.h:
301         (LayerWebKitThread):
302         (WebCore::LayerWebKitThread::deleteTextures):
303         * platform/graphics/blackberry/WebGLLayerWebKitThread.cpp:
304         (WebCore::WebGLLayerWebKitThread::~WebGLLayerWebKitThread):
305         (WebCore::WebGLLayerWebKitThread::deleteTextures):
306         (WebCore):
307         * platform/graphics/blackberry/WebGLLayerWebKitThread.h:
308         (WebGLLayerWebKitThread):
309
310 2012-08-16  Andrey Kosyakov  <caseq@chromium.org>
311
312         Web Inspector: enable instrumentation of platform code
313         https://bugs.webkit.org/show_bug.cgi?id=94125
314
315         Reviewed by Pavel Feldman.
316
317         - add PlatformInstrumentation class that exposes instrumentation methods that may be used by code under WebCore/platform;
318         - move TRACE_EVENT_XXX() macros into PlatformInstrumentation.h to minimize instrumentation hassle in the client code;
319         - implement PlatformInstrumentationClient by InspectorTimelineAgent;
320         - only install PlatformInstrumentationClient when we have outer events for which we expect low-level details
321
322         * CMakeLists.txt:
323         * GNUmakefile.list.am:
324         * Target.pri:
325         * WebCore.gypi:
326         * WebCore.vcproj/WebCore.vcproj:
327         * inspector/InspectorTimelineAgent.cpp:
328         (WebCore::InspectorTimelineAgent::willDecodeImage): to be implemented by subsequent change;
329         (WebCore::InspectorTimelineAgent::didDecodeImage): to be implemented by subsequent change;
330         (WebCore::InspectorTimelineAgent::willResizeImage): to be implemented by subsequent change;
331         (WebCore::InspectorTimelineAgent::didResizeImage): to be implemented by subsequent change;
332         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
333         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
334         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
335         (WebCore::InspectorTimelineAgent::clearRecordStack):
336         * inspector/InspectorTimelineAgent.h:
337         (InspectorTimelineAgent):
338         * platform/PlatformInstrumentation.cpp: Added.
339         (WebCore):
340         (WebCore::PlatformInstrumentation::setClient):
341         * platform/PlatformInstrumentation.h: Added.
342         (WebCore):
343         (PlatformInstrumentationClient):
344         (PlatformInstrumentation):
345         (WebCore::PlatformInstrumentation::hasClient):
346         (WebCore::PlatformInstrumentation::willDecodeImage):
347         (WebCore::PlatformInstrumentation::didDecodeImage):
348         (WebCore::PlatformInstrumentation::willResizeImage):
349         (WebCore::PlatformInstrumentation::didResizeImage):
350         * platform/graphics/skia/NativeImageSkia.cpp:
351         (WebCore::NativeImageSkia::resizedBitmap): added calls to PlatformInstrumentation, removed TRACE_EVENT();
352         * platform/image-decoders/bmp/BMPImageDecoder.cpp:
353         (WebCore::BMPImageDecoder::frameBufferAtIndex): added calls to PlatformInstrumentation;
354         (WebCore::BMPImageDecoder::decode): removed TRACE_EVENT()
355         * platform/image-decoders/gif/GIFImageDecoder.cpp:
356         (WebCore::GIFImageDecoder::frameBufferAtIndex): added calls to PlatformInstrumentation;
357         (WebCore::GIFImageDecoder::decode): removed TRACE_EVENT()
358         * platform/image-decoders/ico/ICOImageDecoder.cpp:
359         (WebCore::ICOImageDecoder::frameBufferAtIndex): added calls to PlatformInstrumentation;
360         (WebCore::ICOImageDecoder::decode): removed TRACE_EVENT()
361         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
362         (WebCore::JPEGImageDecoder::frameBufferAtIndex): added calls to PlatformInstrumentation;
363         (WebCore::JPEGImageDecoder::decode): removed TRACE_EVENT()
364         * platform/image-decoders/png/PNGImageDecoder.cpp:
365         (WebCore::PNGImageDecoder::frameBufferAtIndex): added calls to PlatformInstrumentation;
366         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
367         (WebCore::WEBPImageDecoder::frameBufferAtIndex): added calls to PlatformInstrumentation;
368         (WebCore::WEBPImageDecoder::decode): removed TRACE_EVENT();
369         * inspector/InspectorInstrumentation.cpp: removed orphan event support;
370         (WebCore):
371         * inspector/InspectorInstrumentation.h: ditto.
372
373 2012-08-16  Vsevolod Vlasov  <vsevik@chromium.org>
374
375         Web Inspector: Breakpoints are not correctly restored on reload.
376         https://bugs.webkit.org/show_bug.cgi?id=94209
377
378         Reviewed by Pavel Feldman.
379
380         BreakpointManager now resets uiLocations on workspace reset (was doing it on GlobalObjectCleared).
381         Breakpoint manager now calls restoreBreakpoints automatically when uiSourceCode is added to workspace.
382
383         * inspector/front-end/BreakpointManager.js:
384         (WebInspector.BreakpointManager):
385         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
386         (WebInspector.BreakpointManager.prototype._workspaceReset):
387         * inspector/front-end/UISourceCode.js:
388         (WebInspector.UISourceCode):
389         * inspector/front-end/inspector.js:
390
391 2012-08-16  Pierre Rossi  <pierre.rossi@gmail.com>
392
393         [Qt] Remove FontQt4, HAVE_QRAWFONT flag and the related dead code
394         https://bugs.webkit.org/show_bug.cgi?id=93960
395
396         Reviewed by Simon Hausmann.
397
398         Following the removal of Qt 4 support from trunk in r124879.
399
400         No new tests. Simple cleanup job.
401
402         * Target.pri:
403         * platform/graphics/Font.cpp:
404         (WebCore::Font::codePath):
405         * platform/graphics/Font.h:
406         (Font):
407         * platform/graphics/GraphicsContext.cpp:
408         (WebCore):
409         * platform/graphics/SimpleFontData.cpp:
410         (WebCore::SimpleFontData::platformGlyphInit):
411         (WebCore::SimpleFontData::glyphForCharacter):
412         * platform/graphics/SimpleFontData.h:
413         (SimpleFontData):
414         (WebCore::SimpleFontData::widthForGlyph):
415         * platform/graphics/qt/FontCacheQt.cpp:
416         (WebCore::rawFontForCharacters):
417         (WebCore::FontCache::getFontDataForCharacters):
418         * platform/graphics/qt/FontCustomPlatformData.h:
419         (FontCustomPlatformData):
420         * platform/graphics/qt/FontCustomPlatformDataQt.cpp:
421         (WebCore::FontCustomPlatformData::fontPlatformData):
422         (WebCore::createFontCustomPlatformData):
423         * platform/graphics/qt/FontPlatformData.h:
424         (WebCore::FontPlatformDataPrivate::FontPlatformDataPrivate):
425         (FontPlatformDataPrivate):
426         (FontPlatformData):
427         (WebCore::FontPlatformData::FontPlatformData):
428         * platform/graphics/qt/FontPlatformDataQt.cpp:
429         (WebCore::FontPlatformData::FontPlatformData):
430         (WebCore::FontPlatformData::operator==):
431         (WebCore::FontPlatformData::hash):
432         * platform/graphics/qt/FontQt4.cpp: Removed.
433         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
434         (WebCore::GlyphPage::fill):
435         * platform/graphics/qt/SimpleFontDataQt.cpp:
436         (WebCore::SimpleFontData::determinePitch):
437         (WebCore::SimpleFontData::platformBoundsForGlyph):
438         (WebCore::SimpleFontData::platformInit):
439         (WebCore::SimpleFontData::platformCharWidthInit):
440         * rendering/svg/SVGTextMetricsBuilder.cpp:
441         (WebCore::SVGTextMetricsBuilder::advance):
442         (WebCore::SVGTextMetricsBuilder::advanceSimpleText):
443         (WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer):
444
445 2012-08-16  Yury Semikhatsky  <yurys@chromium.org>
446
447         Web Inspector: memory instrumentation for Resource{Request/Response}Base
448         https://bugs.webkit.org/show_bug.cgi?id=94109
449
450         Reviewed by Vsevolod Vlasov.
451
452         Added reportMemoryUsage methods to ResourceRequestBase, ResourceResponseBase
453         and several related classes.
454
455         * dom/MemoryInstrumentation.cpp:
456         (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl): added overrides
457         for String, StringImpl and AtomicString object types so that we can reuse
458         existing addInstrumentedCollection method instead of adding a counterpart
459         that would operate on not instrumented content. Next step would be to get
460         rid od addObject overrides for these types so that all kinds of Strings are
461         considered as instrumented classes despite they don't have reportMemoryUsage
462         method.
463         (WebCore):
464         * dom/MemoryInstrumentation.h:
465         (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
466         (MemoryInstrumentation):
467         * loader/DocumentLoader.cpp:
468         (WebCore::DocumentLoader::reportMemoryUsage):
469         * platform/network/FormData.cpp:
470         (WebCore::FormData::reportMemoryUsage):
471         (WebCore):
472         * platform/network/FormData.h:
473         (WebCore):
474         (FormData):
475         * platform/network/ResourceRequestBase.cpp:
476         (WebCore::ResourceRequestBase::reportMemoryUsage):
477         (WebCore):
478         * platform/network/ResourceRequestBase.h:
479         (ResourceRequestBase):
480         * platform/network/ResourceResponseBase.cpp:
481         (WebCore):
482         (WebCore::ResourceResponseBase::reportMemoryUsage):
483         * platform/network/ResourceResponseBase.h:
484         (WebCore):
485         (ResourceResponseBase):
486
487 2012-08-16  Adam Barth  <abarth@webkit.org>
488
489         Delete DOMWindow::securityOrigin()
490         https://bugs.webkit.org/show_bug.cgi?id=93991
491
492         Reviewed by Eric Seidel.
493
494         DOMWindow::securityOrigin() just calls through to
495         document()->securityOrigin(). This patch updates all the callers to do
496         that work themselves, making it clearer what's going on at each call
497         site.
498
499         * bindings/generic/BindingSecurity.cpp:
500         (WebCore::canAccessDocument):
501         * bindings/js/JSDOMWindowBase.cpp:
502         (WebCore::JSDOMWindowBase::allowsAccessFrom):
503         * bindings/js/JSDOMWindowCustom.h:
504         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
505         * bindings/js/ScriptController.cpp:
506         (WebCore::ScriptController::collectIsolatedContexts):
507         * page/DOMWindow.cpp:
508         (WebCore::DOMWindow::isInsecureScriptAccess):
509         (WebCore::DOMWindow::createWindow):
510         * page/DOMWindow.h:
511         (DOMWindow):
512         * page/Location.cpp:
513         (WebCore::Location::reload):
514
515 2012-08-16  Sheriff Bot  <webkit.review.bot@gmail.com>
516
517         Unreviewed, rolling out r125751.
518         http://trac.webkit.org/changeset/125751
519         https://bugs.webkit.org/show_bug.cgi?id=94206
520
521         we shouldn't be rolling out this patch without a formal
522         review. (Requested by rniwa_ on #webkit).
523
524         * dom/CharacterData.cpp:
525         (WebCore::CharacterData::setDataAndUpdate):
526         * editing/FrameSelection.cpp:
527         (WebCore::updatePositionAfterAdoptingTextReplacement):
528         (WebCore::FrameSelection::textWasReplaced):
529         * editing/FrameSelection.h:
530         (FrameSelection):
531
532 2012-08-16  Marja Hölttä  <marja@chromium.org>
533
534         FormController, FileInputType: Enable reading selected file names from document state
535         https://bugs.webkit.org/show_bug.cgi?id=91231
536
537         Reviewed by Jochen Eisinger.
538
539         This change enables Chromium to set up file permissions properly when
540         the session restore feature restores a page with selected files.
541
542         Test: fast/forms/file/selected-files-from-history-state.html
543
544         * WebCore.exp.in: Exported FormController::getReferencedFilePaths.
545         * html/FileInputType.cpp:
546         (WebCore::FileInputType::filesFromFormControlState): Added. Extracts FileChooserFileInfos from a FormControlState.
547         (WebCore):
548         (WebCore::FileInputType::restoreFormControlState): Refactored to use filesFromFormControlState.
549         * html/FileInputType.h:
550         (FileInputType): Added filesFromFormControlState.
551         * html/FormController.cpp:
552         (SavedFormState): Added getReferencedFilePaths.
553         (WebCore::SavedFormState::getReferencedFilePaths): Added. Extracts selected file paths from SavedFormState.
554         (WebCore):
555         (WebCore::FormController::setStateForNewFormElements): Refactored to use formStatesFromStateVector.
556         (WebCore::FormController::formStatesFromStateVector):
557         (WebCore::FormController::getReferencedFilePaths): Added. Static. Extracts selected file paths from a document state.
558         * html/FormController.h:
559         (FormController): Added getReferencedFilePaths and formStatesFromStateVector.
560         * html/HTMLInputElement.cpp:
561         (WebCore::HTMLInputElement::filesFromFileInputFormControlState): Added. Delegates to FileInputType::filesFromFormControlState.
562         (WebCore):
563         * html/HTMLInputElement.h: Added filesFromFileInputFormControlState.
564         (HTMLInputElement):
565         * testing/Internals.cpp:
566         (WebCore::Internals::getReferencedFilePaths): Calls FormController::getReferencedFilePaths.
567         (WebCore):
568         * testing/Internals.h:
569         (Internals): Added getReferencedFilePaths.
570         * testing/Internals.idl: Added binding for getReferencedFilePaths.
571
572 2012-08-15  Shawn Singh  <shawnsingh@chromium.org>
573
574         [chromium] set scissorRect per quad so that quads are correctly clipped
575         https://bugs.webkit.org/show_bug.cgi?id=94050
576
577         Reviewed by Adrienne Walker.
578
579         Certain quad types rely on scissoring to do correct
580         clipping. Refactoring the quad types to remove this assumption
581         will be done in a later patch, but for now, we have to apply the
582         scissor rect to every quad to ensure that those quads are
583         correctly clipped.
584
585         Test: compositing/overflow/overflow-hidden-canvas-layer.html
586
587         Also updated two unit tests to reflect the change in semantics.
588
589         * platform/graphics/chromium/LayerRendererChromium.cpp:
590         (WebCore::LayerRendererChromium::drawRenderPass):
591         (WebCore::LayerRendererChromium::drawQuad):
592
593 2012-08-16  Yoshifumi Inoue  <yosin@chromium.org>
594
595         [Forms] Wheel event support in multiple fields time input UI
596         https://bugs.webkit.org/show_bug.cgi?id=94166
597
598         Reviewed by Kent Tamura.
599
600         This patch makes multiple fields time input UI to handle wheel event
601         on spin button.
602
603         This patch affects if ENABLE_INPUT_TYPE_TIME and ENABLE_INPUT_TYPE_MULTIPLE_FIELDS
604         are enabled.
605
606         Test: fast/forms/time-multiple-fields/time-multiple-fields-wheel-event.html
607
608         * html/shadow/DateTimeEditElement.cpp:
609         (WebCore::DateTimeEditElement::defaultEventHandler): Changed to forward
610         event to spin button if available.
611
612 2012-08-16  Zhigang Gong  <zhigang.gong@linux.intel.com>
613
614         TextureMapperGL::beginPainting has a duplicate call to get GL_FRAMEBUFFER_BINDING.
615         https://bugs.webkit.org/show_bug.cgi?id=94180
616
617         Reviewed by Noam Rosenthal.
618
619         * platform/graphics/texmap/TextureMapperGL.cpp:
620         (WebCore::TextureMapperGL::beginPainting):
621
622 2012-08-16  Sheriff Bot  <webkit.review.bot@gmail.com>
623
624         Unreviewed, rolling out r119705.
625         http://trac.webkit.org/changeset/119705
626         https://bugs.webkit.org/show_bug.cgi?id=94192
627
628         Causing crash on ClusterFuzz due to incorrect layout ordering
629         change (Requested by inferno-sec on #webkit).
630
631         * dom/CharacterData.cpp:
632         (WebCore::CharacterData::setDataAndUpdate):
633         * editing/FrameSelection.cpp:
634         (WebCore::updatePositionAfterAdoptingTextReplacement):
635         (WebCore::FrameSelection::textWillBeReplaced):
636         * editing/FrameSelection.h:
637         (FrameSelection):
638
639 2012-08-15  Kent Tamura  <tkent@chromium.org>
640
641         [Chromium] Refactoring: Introduce a new function for some part of PopupContainer::layoutAndCalculateWidgetRect()
642         https://bugs.webkit.org/show_bug.cgi?id=94087
643
644         Reviewed by Hajime Morita.
645
646         Move some part of PopupContainer::layoutAndCalculateWidgetRect() to a
647         new function which is not a member of PopupContainer because we'd like
648         to add a unit test for the position calculation code, and to reduce the
649         dependency.
650
651         No new tests. Popup positioning code is not testable in WebKit.
652
653         * platform/chromium/PopupContainer.cpp:
654         (WebCore::layoutAndCalculateWidgetRectInternal):
655         Added. Move the code from PopupContainer::layoutAndCalculateWidgetRect.
656         In order to avoid to call member functions of PopupContainer, we
657         don't call layoutAndGetRTLOffset() and height(). Use
658         PopupListBox::layout() to recalculate the popup content size, and use
659         PopupListBox::height() + kBorderSize * 2 instead of height(). We
660         resize the view after finishing layoutAndCalculateWidgetRectInternal
661         in PopupContainer::layoutAndCalculateWidgetRect.
662         (WebCore::PopupContainer::layoutAndCalculateWidgetRect):
663         Move some code to layoutAndCalculateWidgetRectInternal.
664         (WebCore::PopupContainer::fitToListBox):
665         Added. Move the code from PopupContainer::layoutAndGetRTLOffset.
666         (WebCore::PopupContainer::layoutAndGetRTLOffset):
667         Move some code to fitToListBox.
668         * platform/chromium/PopupContainer.h:
669         (PopupContainer): Added fitToListBox.
670
671 2012-08-15  Adam Barth  <abarth@webkit.org>
672
673         VoidCallback should not be a special snowflake
674         https://bugs.webkit.org/show_bug.cgi?id=94119
675
676         Reviewed by Eric Seidel.
677
678         VoidCallback is the oldest of the callbacks and it predates our ability
679         to autogenerate callback objects. The existing implementation of
680         VoidCallback is wrong because it doesn't call
681         ActiveDOMCallback::canInvokeCallback. The net result of that is that
682         void callbacks can race with navigations and occationally execute after
683         the Frame has navigated to a new Document, which was causing the
684         flakiness.
685
686         This patch changes VoidCallback to no longer be a unique snowflake.
687         Instead, we autogenerate the implementation, just like every other
688         callback in WebCore.
689
690         Tests: storage/websql/database-lock-after-reload.html is no longer flaky.
691
692         * DerivedSources.make:
693         * GNUmakefile.list.am:
694         * Modules/filesystem/SyncCallbackHelper.h:
695         (WebCore::SyncCallbackHelper::SuccessCallbackImpl::handleEvent):
696         * Target.pri:
697         * UseJSC.cmake:
698         * UseV8.cmake:
699         * WebCore.gyp/WebCore.gyp:
700         * WebCore.gypi:
701         * WebCore.vcproj/WebCore.vcproj:
702         * WebCore.xcodeproj/project.pbxproj:
703         * bindings/cpp/WebDOMCustomVoidCallback.cpp: Removed.
704         * bindings/cpp/WebDOMCustomVoidCallback.h: Removed.
705         * bindings/js/JSBindingsAllInOne.cpp:
706         * bindings/js/JSCustomVoidCallback.cpp: Removed.
707         * bindings/js/JSCustomVoidCallback.h: Removed.
708         * bindings/js/JSDesktopNotificationsCustom.cpp:
709         (WebCore::JSNotificationCenter::requestPermission):
710         * bindings/scripts/CodeGeneratorCPP.pm:
711         (GetClassName):
712         (AddIncludesForType):
713         * bindings/scripts/CodeGeneratorJS.pm:
714         (GetCallbackClassName):
715         (GenerateCallbackImplementation):
716         (JSValueToNative):
717         * bindings/scripts/CodeGeneratorV8.pm:
718         (GenerateCallbackImplementation):
719         (TypeCanFailConversion):
720         (GetCallbackClassName):
721         * bindings/scripts/test/JS/JSTestCallback.cpp:
722         (WebCore::JSTestCallback::callbackWithNoParam):
723         * bindings/scripts/test/V8/V8TestCallback.cpp:
724         * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
725         * bindings/v8/custom/V8CustomVoidCallback.cpp: Removed.
726         * bindings/v8/custom/V8CustomVoidCallback.h: Removed.
727         * bindings/v8/custom/V8MutationCallbackCustom.cpp:
728         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
729         (WebCore::V8NotificationCenter::requestPermissionCallback):
730         * html/VoidCallback.h:
731         (VoidCallback):
732         * html/VoidCallback.idl:
733         * inspector/InspectorDatabaseAgent.cpp:
734         (WebCore):
735
736 2012-08-15  Hayato Ito  <hayato@chromium.org>
737
738         [Shadow] Stop 'load' and 'error' events at shadow boundaries
739         https://bugs.webkit.org/show_bug.cgi?id=93425
740
741         Reviewed by Dimitri Glazkov.
742
743         The shadow DOM spec has added these events as 'always-be-stopped' events at shadow boundaries.
744         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#events-that-are-always-stopped
745
746         Test: fast/dom/shadow/events-stopped-at-shadow-boundary.html
747
748         * dom/EventDispatcher.cpp:
749         (WebCore::EventDispatcher::determineDispatchBehavior):
750
751 2012-08-15  Kent Tamura  <tkent@chromium.org>
752
753         Calendar Picker: Localize numbers in a calendar picker
754         https://bugs.webkit.org/show_bug.cgi?id=93704
755
756         Reviewed by Hajime Morita.
757
758         Because Number.toLocaleString() of V8 returns no localized
759         numbers, we provide a localization function via
760         PagePopupController.
761
762         No new tests. We have no ways to change the locale in layout tests.
763
764         * Resources/pagepopups/calendarPicker.js:
765         (localizeNumber): Added. A wrapper for pagePopupController.localizeNumberString().
766         (formatJapaneseImperialEra): Use localizeNumber().
767         (formatYearMonth): ditto.
768         (DaysTable.prototype._renderMonth): ditto.
769         * page/PagePopupController.cpp:
770         (WebCore::PagePopupController::localizeNumberString):
771         Added. Just calls WebCore::convertToLocalizedNumber().
772         * page/PagePopupController.h:
773         (PagePopupController): Declare localizeNumberString().
774         * page/PagePopupController.idl: Add localizeNumberString().
775
776 2012-08-15  MORITA Hajime  <morrita@google.com>
777
778         Regression(121518) TextFieldDecorationElement formatting is broken.
779         https://bugs.webkit.org/show_bug.cgi?id=90913
780
781         Reviewed by Dimitri Glazkov.
782
783         NodeRenderingContext::nextRenderer() has a problem which cannot retrieve the renderer
784         across an insertion point in some case. That is because ad-hoc composed tree traversal on
785         NodeRenderingContext is broken. The problem is hidden before r121518 though.
786
787         This change rewrite nextRenderer() using ComposedShadowTreeWalker to eliminate the ad-hoc
788         traversal. previousRenderer() is also rewritten in the same way.
789
790         Test: fast/dom/shadow/shadow-div-reflow.html
791
792         * dom/NodeRenderingContext.cpp:
793         (WebCore):
794         (WebCore::NodeRenderingContext::nextRenderer):
795         (WebCore::NodeRenderingContext::previousRenderer):
796
797 2012-08-15  Julien Chaffraix  <jchaffraix@webkit.org>
798
799         Add a was-inserted-into-tree notification to RenderObject
800         https://bugs.webkit.org/show_bug.cgi?id=93874
801
802         Reviewed by Eric Seidel.
803
804         This change adds insertedIntoTree to RenderObject so that renderers
805         can now do their post-insertion task inside this function.
806
807         Our current architecture has 2 ways of doing post-insertion tasks:
808         - overriding RenderObject::addChild
809         - RenderObjectChildList::insertChildNode / appendChildNode
810
811         Because the former is not guaranteed to be called for each insertion
812         (on top of being called on the parent and not the inserted child), the
813         2 latter functions are the one that have been mostly used recently. This
814         led to code duplication between the functions but also doesn't scale as
815         other renderers need to hop on this notification and currently don't (for
816         example, table parts). The other renderer's migration will be done in
817         follow-up patches.
818
819         Refactoring covered by existing tests.
820
821         * rendering/RenderObjectChildList.cpp:
822         (WebCore::RenderObjectChildList::removeChildNode):
823         * rendering/RenderObject.cpp:
824         (WebCore::RenderObject::enclosingRenderNamedFlowThread):
825         Moved the code from renderNamedFlowThreadContainer to RenderObject::enclosingRenderNamedFlowThread.
826         This is needed as now 2 classes need to access the function.
827
828         * rendering/RenderObjectChildList.cpp:
829         (WebCore::RenderObjectChildList::appendChildNode):
830         (WebCore::RenderObjectChildList::insertChildNode):
831         Moved the code duplicated from those 2 functions into
832         the instances of insertedIntoTree below.
833
834         * rendering/RenderObject.cpp:
835         (WebCore::RenderObject::insertedIntoTree):
836         Base function that needs to be called from all the other
837         specialized functions below.
838
839         * rendering/RenderListItem.cpp:
840         (WebCore::RenderListItem::insertedIntoTree):
841         * rendering/RenderListItem.h:
842         * rendering/RenderObject.h:
843         * rendering/RenderObjectChildList.h:
844         * rendering/RenderRegion.cpp:
845         (WebCore::RenderRegion::insertedIntoTree):
846         * rendering/RenderRegion.h:
847         Added the overriden insertedIntoTree function.
848
849         * rendering/RenderQuote.h:
850         Moved the comment from RenderObjectChildList about RenderQuote here.
851
852 2012-08-14  Jeffrey Pfau  <jpfau@apple.com>
853
854         Allow blocking of Web SQL databases in third-party documents
855         https://bugs.webkit.org/show_bug.cgi?id=94057
856
857         Reviewed by Adam Barth.
858
859         Add a check for pages in third-party pages to allow third-party storage blocking of Web SQL databases.
860
861         Tests: http/tests/security/cross-origin-websql-allowed.html
862                http/tests/security/cross-origin-websql.html
863
864         * Modules/webdatabase/DOMWindowWebDatabase.cpp:
865         (WebCore::DOMWindowWebDatabase::openDatabase): Pass top origin to canAccessDatabase
866         * page/SecurityOrigin.cpp:
867         (WebCore::SecurityOrigin::canAccessStorage): Common method for various types of storage that use the same criteria
868         * page/SecurityOrigin.h:
869         (WebCore::SecurityOrigin::canAccessDatabase): Use canAccessStorage
870         (WebCore::SecurityOrigin::canAccessLocalStorage): Change to using canAccessStorage
871         (SecurityOrigin):
872
873 2012-08-15  Nikhil Bhargava  <nbhargava@google.com>
874
875         Improve Document.h compile time - reduce includes of ScriptCallStack.h
876         https://bugs.webkit.org/show_bug.cgi?id=94161
877
878         Reviewed by Eric Seidel.
879
880         ScriptCallStack.h no longer included from ScriptExecutionContext. It's
881         relatively expensive to compile and gets compiled a ton because
882         Document.h indirectly includes it.
883
884         No new tests. Functionality should remain the same
885
886         * Modules/indexeddb/IDBDatabase.cpp:
887         * Modules/indexeddb/IDBIndex.cpp:
888         * Modules/indexeddb/IDBObjectStore.cpp:
889         * bindings/js/ScriptController.cpp:
890         * dom/ScriptElement.cpp:
891         * dom/ScriptExecutionContext.h:
892         (WebCore):
893         * fileapi/Blob.cpp:
894         * fileapi/WebKitBlobBuilder.cpp:
895         * html/HTMLTrackElement.cpp:
896         * loader/TextTrackLoader.cpp:
897         * page/DOMSecurityPolicy.cpp:
898
899 2012-08-15  Alec Flett  <alecflett@chromium.org>
900
901         IndexedDB: IDB*::keyPath should return IDBKeyPath, not IDBAny
902         https://bugs.webkit.org/show_bug.cgi?id=92434
903
904         Reviewed by Tony Chang.
905
906         Clean up IDBKeyPath conversion to IDBAny objects. This gets rid of
907         some implicit conversion from IDBKeyPath to IDBAny.
908
909         No new tests, just changing method signatures.
910
911         * Modules/indexeddb/IDBAny.cpp:
912         (WebCore::IDBAny::set):
913         (WebCore):
914         * Modules/indexeddb/IDBAny.h:
915         (WebCore):
916         (WebCore::IDBAny::create):
917         (IDBAny):
918         * Modules/indexeddb/IDBIndex.h:
919         (WebCore::IDBIndex::keyPathAny):
920         (WebCore::IDBIndex::keyPath):
921         * Modules/indexeddb/IDBIndex.idl:
922         * Modules/indexeddb/IDBKeyPath.cpp:
923         * Modules/indexeddb/IDBKeyPath.h:
924         * Modules/indexeddb/IDBObjectStore.h:
925         (WebCore::IDBObjectStore::keyPathAny):
926         (WebCore::IDBObjectStore::keyPath):
927         * Modules/indexeddb/IDBObjectStore.idl:
928
929 2012-08-15  Ryosuke Niwa  <rniwa@webkit.org>
930
931         EFL build fix attempt after r125711. Touch an IDL file to regenerate derived sources.
932
933         * html/HTMLAllCollection.idl:
934
935 2012-08-15  Alec Flett  <alecflett@chromium.org>
936
937         IndexedDB: generate index keys for existing data in createIndex in front end
938         https://bugs.webkit.org/show_bug.cgi?id=91125
939
940         Reviewed by Tony Chang.
941
942         Make createIndex() do index key generation in the frontend, rather
943         than the backend. When an index is created, the frontend uses the
944         cursor API to iterate through the values in the backend to
945         generate keys, sending them back to the backend using
946         IDBObjectStore::setIndexKeys()
947
948         This confines all key injection/extraction to the frontend.
949
950         The new test verifies the implemented behavior with respect to
951         error handling in degenerate uses of put(), though that behavior
952         is still in discussion as the spec is vague on the proper error
953         behavior.
954
955         Test: storage/indexeddb/lazy-index-population.html
956
957         * Modules/indexeddb/IDBCursorBackendImpl.cpp: Make sure that the
958         TaskType propagates throught the cursor and all subsequent
959         continue() calls.
960         (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
961         (WebCore::IDBCursorBackendImpl::continueFunction):
962         (WebCore::IDBCursorBackendImpl::prefetchContinue):
963         * Modules/indexeddb/IDBCursorBackendImpl.h:
964         (WebCore::IDBCursorBackendImpl::create):
965         (IDBCursorBackendImpl):
966         * Modules/indexeddb/IDBObjectStore.cpp: Add an IndexPopulator
967         class to run a cursor from the frontend.
968         (WebCore):
969         (WebCore::IDBObjectStore::createIndex):
970         (WebCore::IDBObjectStore::openCursor):
971         * Modules/indexeddb/IDBObjectStore.h:
972         (WebCore::IDBObjectStore::openCursor):
973         (IDBObjectStore):
974         (WebCore::IDBObjectStore::createIndex):
975         * Modules/indexeddb/IDBObjectStore.idl: Pass along ScriptContext
976         so that openCursor can be called from createIndex.
977         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
978         (WebCore):
979         (WebCore::makeIndexWriters):
980         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
981         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
982         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
983         (WebCore::IDBObjectStoreBackendImpl::putInternal):
984         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
985         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
986         (WebCore::IDBObjectStoreBackendImpl::openCursor):
987         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
988         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
989         (IDBObjectStoreBackendImpl):
990         (WebCore::IDBObjectStoreBackendImpl::iterIndexesBegin):
991         (WebCore::IDBObjectStoreBackendImpl::iterIndexesEnd):
992         (WebCore::IDBObjectStoreBackendImpl::backingStore):
993         (WebCore::IDBObjectStoreBackendImpl::databaseId):
994         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
995         * Modules/indexeddb/IDBRequest.cpp:
996         Allow requests to keep their own TaskType, to give certain
997         requests priority over others.
998         (WebCore::IDBRequest::create):
999         (WebCore):
1000         (WebCore::IDBRequest::IDBRequest):
1001         (WebCore::IDBRequest::abort):
1002         * Modules/indexeddb/IDBRequest.h:
1003         (IDBRequest):
1004         (WebCore::IDBRequest::taskType):
1005         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
1006         Introduce a second, higher priority event queue, m_preemptiveTaskQueue,
1007         which takes priority over the regular task queue.
1008         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
1009         (WebCore::IDBTransactionBackendImpl::scheduleTask):
1010         (WebCore::IDBTransactionBackendImpl::isTaskQueueEmpty):
1011         (WebCore):
1012         (WebCore::IDBTransactionBackendImpl::commit):
1013         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
1014         (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
1015         * Modules/indexeddb/IDBTransactionBackendImpl.h:
1016         (WebCore::IDBTransactionBackendImpl::scheduleTask):
1017         (IDBTransactionBackendImpl):
1018         (WebCore::IDBTransactionBackendImpl::addEarlyEvent):
1019         (WebCore::IDBTransactionBackendImpl::didCompleteEarlyEvent):
1020         * Modules/indexeddb/IDBVersionChangeRequest.cpp:
1021         (WebCore::IDBVersionChangeRequest::IDBVersionChangeRequest):
1022
1023 2012-08-15  Hayato Ito  <hayato@chromium.org>
1024
1025         A 'load' event should be fired on the shadow host directly, not on an inner image element of shadow dom subtree.
1026         https://bugs.webkit.org/show_bug.cgi?id=93920
1027
1028         Reviewed by Dimitri Glazkov.
1029
1030         A 'load' event is a must-stoppable event at shadow boundary. So we
1031         should fire a 'load' event on a shadow host directly, not on an
1032         inner image element.
1033
1034         Test: fast/dom/shadow/shadowdom-for-image-event.html
1035
1036         * html/HTMLImageLoader.cpp:
1037         (WebCore::HTMLImageLoader::dispatchLoadEvent):
1038         * loader/ImageLoaderClient.h:
1039         (WebCore::ImageLoaderClient::eventTarget):
1040
1041 2012-08-15  Otto Derek Cheung  <otcheung@rim.com>
1042
1043         [BlackBerry] Show custom error page when 407 is received
1044         https://bugs.webkit.org/show_bug.cgi?id=94138
1045
1046          Reviewed by George Staikos.
1047          Internally reviewed by Lianghui Chen
1048
1049          Adding a new custom error page when the browser receieves
1050          a Wifi proxy authentication error. The previous behaviour
1051          is to ask for user credentials everytime, and silently fails
1052          when the username and password fields in the Wifi settings
1053          are not empty. UX suggests modifying the behaviour to simply
1054          asks the user to change their credentials in the Wifi settings
1055          when we receive such an error.
1056
1057          The fix is to prevent notifyAuthReceived from sending another
1058          networkjob when authCallbacks are called, and to listen to any 407
1059          calls in notifyStatusReceived. Once we hit a 407, tell the frame we
1060          failed and should load the custom error page.
1061
1062          Also removed checking functions in sendRequestWithCredentials because
1063          proxy auth requests won't get into that function anymore.
1064
1065          #PR163400
1066
1067          Tested by loading on device and loading/reloading pages under
1068          these scenarios:
1069          - Connected to wifi (no proxy)
1070          - Connected to wifi (proxy with no credentials)
1071          - Connected to wifi (proxy with invalid credentials)
1072          - Connected to wifi (proxy with valid credentials)
1073
1074          * platform/network/blackberry/NetworkJob.cpp:
1075          (WebCore::NetworkJob::handleNotifyStatusReceived):
1076          (WebCore::NetworkJob::notifyAuthReceived):
1077          (WebCore::NetworkJob::sendRequestWithCredentials):
1078
1079 2012-08-15  Dan Carney  <dcarney@google.com>
1080
1081         Refactor away IsolatedWorld
1082         https://bugs.webkit.org/show_bug.cgi?id=93971
1083
1084         Reviewed by Adam Barth.
1085
1086         Remove IsolatedWorld class as it was 1:1 with DOMWrapperWorld.
1087         This paves the way towards a JSC-like use of DOMWrapperWorld.
1088
1089         No tests.  No change in functionality.
1090
1091         * UseV8.cmake:
1092         * WebCore.gypi:
1093         * bindings/v8/DOMWrapperWorld.cpp:
1094         (WebCore):
1095         (WebCore::mainThreadNormalWorld):
1096         * bindings/v8/DOMWrapperWorld.h:
1097         (WebCore):
1098         (DOMWrapperWorld):
1099         (WebCore::DOMWrapperWorld::create):
1100         (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
1101         (WebCore::DOMWrapperWorld::count):
1102         (WebCore::DOMWrapperWorld::worldId):
1103         (WebCore::DOMWrapperWorld::domDataStore):
1104         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
1105         * bindings/v8/IsolatedWorld.cpp: Removed.
1106         * bindings/v8/IsolatedWorld.h: Removed.
1107         * bindings/v8/V8DOMWrapper.h:
1108         (WebCore::V8DOMWrapper::getCachedWrapper):
1109         * bindings/v8/V8IsolatedContext.cpp:
1110         (WebCore::V8IsolatedContext::V8IsolatedContext):
1111         (WebCore::V8IsolatedContext::destroy):
1112         * bindings/v8/V8IsolatedContext.h:
1113         (WebCore::V8IsolatedContext::getEntered):
1114         (WebCore::V8IsolatedContext::world):
1115         (V8IsolatedContext):
1116
1117 2012-08-15  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
1118
1119         [css3-text] Add CSS3 Text decoration compile flag
1120         https://bugs.webkit.org/show_bug.cgi?id=93863
1121
1122         Reviewed by Julien Chaffraix.
1123
1124         This patch handles the compile flag implementation, which will come disabled by
1125         default, thus not exposing the CSS3 text decoration features to the web, unless
1126         when explicitly enabling it with "--css3-text-decoration" build parameter.
1127
1128         Changeset r125205 added "-webkit-text-decoration-line" support without proper
1129         compile flag. I am fixing this on this patch by adding #ifdef's along the added
1130         code and reverting getComputedStyle* layout test changes until further notice.
1131         The text-decoration-line.html layout test is now moved to
1132         fast/css3-text-decoration directory, which is skipped on all platforms until
1133         feature is sound and ready to be exposed to web.
1134
1135         Test: fast/css3-text-decoration/text-decoration-line.html
1136
1137         * Configurations/FeatureDefines.xcconfig:
1138         * GNUmakefile.am:
1139         * css/CSSComputedStyleDeclaration.cpp:
1140         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1141         * css/CSSParser.cpp:
1142         (WebCore::CSSParser::parseValue):
1143         (WebCore::CSSParser::addTextDecorationProperty):
1144         (WebCore::CSSParser::parseTextDecoration):
1145         * css/CSSProperty.cpp:
1146         (WebCore::CSSProperty::isInheritedProperty):
1147         * css/CSSPropertyNames.in:
1148         * css/StyleBuilder.cpp:
1149         (WebCore::StyleBuilder::StyleBuilder):
1150         * css/StyleResolver.cpp:
1151         (WebCore::StyleResolver::collectMatchingRulesForList):
1152         Added #ifdefs to enable/disable CSS3 Text Decoration code implemented by r125205.
1153
1154 2012-08-15  Iain Merrick  <husky@chromium.org>
1155
1156         Refactoring: move EventHandler::targetNode into HitTestResult
1157         https://bugs.webkit.org/show_bug.cgi?id=94107
1158
1159         Reviewed by Dimitri Glazkov.
1160
1161         This static helper method in EventHandler was made public so that
1162         WebFrameImpl can call it. That's untidy because EventHandler isn't
1163         really involved. This patch turns it into an instance method of
1164         HitTestResult (with a wrapper in MouseEventWithHitTestResult for
1165         convenience).
1166     
1167         Pure refactoring, no behavior change, no new test needed.
1168
1169         * page/EventHandler.cpp:
1170         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
1171         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
1172         (WebCore::EventHandler::handleMousePressEventTripleClick):
1173         (WebCore::EventHandler::handleMousePressEventSingleClick):
1174         (WebCore::EventHandler::handleMousePressEvent):
1175         (WebCore::EventHandler::handleMouseDraggedEvent):
1176         (WebCore::EventHandler::updateSelectionForMouseDrag):
1177         (WebCore::EventHandler::handleMouseReleaseEvent):
1178         (WebCore::EventHandler::subframeForHitTestResult):
1179         (WebCore::EventHandler::selectCursor):
1180         (WebCore::EventHandler::handleMouseDoubleClickEvent):
1181         (WebCore::EventHandler::handleMouseMoveEvent):
1182         (WebCore::EventHandler::updateDragAndDrop):
1183         (WebCore::EventHandler::handleGestureEvent):
1184         (WebCore::EventHandler::sendContextMenuEvent):
1185         * page/EventHandler.h:
1186         (EventHandler):
1187         * page/MouseEventWithHitTestResults.h:
1188         (WebCore::MouseEventWithHitTestResults::targetNode):
1189         * page/chromium/EventHandlerChromium.cpp:
1190         (WebCore::EventHandler::passMousePressEventToSubframe):
1191         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1192         * page/efl/EventHandlerEfl.cpp:
1193         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1194         * page/gtk/EventHandlerGtk.cpp:
1195         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1196         * page/mac/EventHandlerMac.mm:
1197         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1198         (WebCore::EventHandler::passSubframeEventToSubframe):
1199         * page/wx/EventHandlerWx.cpp:
1200         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1201         * rendering/HitTestResult.cpp:
1202         (WebCore::HitTestResult::targetNode):
1203         (WebCore):
1204         * rendering/HitTestResult.h:
1205         (HitTestResult):
1206
1207 2012-08-15  David Grogan  <dgrogan@chromium.org>
1208
1209         IndexedDB: Add some ASSERTs
1210         https://bugs.webkit.org/show_bug.cgi?id=94055
1211
1212         Reviewed by Ojan Vafai.
1213
1214         These are just some additional ASSERTS and some ASSERT_WITH_MESSAGE in
1215         place of ASSERT. They are from the patch in
1216         https://bugs.webkit.org/show_bug.cgi?id=92897
1217
1218         No new tests - we should never hit this behavior.
1219
1220         * Modules/indexeddb/IDBDatabase.cpp:
1221         (WebCore::IDBDatabase::setVersion):
1222         (WebCore::IDBDatabase::registerFrontendCallbacks):
1223         * Modules/indexeddb/IDBRequest.cpp:
1224         (WebCore::IDBRequest::dispatchEvent):
1225         (WebCore::IDBRequest::enqueueEvent):
1226         * Modules/indexeddb/IDBTransaction.cpp:
1227         (WebCore::IDBTransaction::setActive):
1228
1229 2012-08-15  Sheriff Bot  <webkit.review.bot@gmail.com>
1230
1231         Unreviewed, rolling out r125687.
1232         http://trac.webkit.org/changeset/125687
1233         https://bugs.webkit.org/show_bug.cgi?id=94147
1234
1235         It broke the whole world (Requested by Ossy_night on #webkit).
1236
1237         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
1238         (WebCore::JSSQLStatementErrorCallback::handleEvent):
1239         * bindings/js/JSDOMWindowCustom.cpp:
1240         (WebCore::JSDOMWindow::addEventListener):
1241         (WebCore::JSDOMWindow::removeEventListener):
1242         * bindings/js/JSDataViewCustom.cpp:
1243         (WebCore::getDataViewMember):
1244         * bindings/js/JSDeviceMotionEventCustom.cpp:
1245         (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
1246         * bindings/js/JSDeviceOrientationEventCustom.cpp:
1247         (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
1248         * bindings/js/JSDictionary.cpp:
1249         (WebCore::JSDictionary::convertValue):
1250         * bindings/js/JSDirectoryEntryCustom.cpp:
1251         (WebCore::JSDirectoryEntry::getFile):
1252         (WebCore::JSDirectoryEntry::getDirectory):
1253         * bindings/js/JSDirectoryEntrySyncCustom.cpp:
1254         (WebCore::getFlags):
1255         * bindings/js/JSHTMLCanvasElementCustom.cpp:
1256         (WebCore::JSHTMLCanvasElement::getContext):
1257         * bindings/js/JSInspectorFrontendHostCustom.cpp:
1258         (WebCore::populateContextMenuItems):
1259         * bindings/js/JSMessageEventCustom.cpp:
1260         (WebCore::handleInitMessageEvent):
1261         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1262         (WebCore::dataFunctionMatrix):
1263         * bindings/js/JSXMLHttpRequestCustom.cpp:
1264         (WebCore::JSXMLHttpRequest::open):
1265         * bindings/js/JavaScriptCallFrame.cpp:
1266         * bindings/js/JavaScriptCallFrame.h:
1267         (JavaScriptCallFrame):
1268         * bindings/js/ScriptDebugServer.cpp:
1269         (WebCore::ScriptDebugServer::hasBreakpoint):
1270         * bindings/scripts/CodeGeneratorJS.pm:
1271         (GenerateEventListenerCall):
1272         (GenerateHeader):
1273         (JSValueToNative):
1274         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1275         (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
1276         (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
1277         * bindings/scripts/test/JS/JSTestEventTarget.h:
1278         (WebCore::JSTestEventTarget::create):
1279         * bindings/scripts/test/JS/JSTestObj.cpp:
1280         (WebCore::setJSTestObjCreate):
1281         (WebCore::setJSTestObjReflectedBooleanAttr):
1282         (WebCore::setJSTestObjReflectedCustomBooleanAttr):
1283         (WebCore::jsTestObjPrototypeFunctionAddEventListener):
1284         (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
1285         * bridge/c/c_utility.cpp:
1286         (JSC::Bindings::convertValueToNPVariant):
1287         * bridge/jni/jni_jsobject.mm:
1288         (JavaJSObject::convertValueToJObject):
1289         * bridge/qt/qt_runtime.cpp:
1290         (JSC::Bindings::convertValueToQVariant):
1291
1292 2012-08-15  Dominic Mazzoni  <dmazzoni@google.com>
1293
1294         AX: Calls to AXObjectCache should prefer Node over Renderer
1295         https://bugs.webkit.org/show_bug.cgi?id=91794
1296
1297         Reviewed by Chris Fleizach.
1298
1299         Now that it's possible for nodes inside a canvas subtree to be focused and
1300         represent accessible content, accessibility notifications should be triggered
1301         with a Node* rather than with a RenderObject* whenever possible.
1302
1303         Every public API in AXObjectCache that took a RenderObject* before now either
1304         takes a Node* instead, or has a parallel method that takes a Node*.
1305
1306         Tests: accessibility/accessibility-node-memory-management.html
1307                accessibility/accessibility-node-reparent.html
1308                accessibility/canvas-fallback-content.html
1309
1310         * accessibility/AXObjectCache.cpp:
1311         (WebCore::AXObjectCache::focusedImageMapUIElement):
1312         (WebCore::AXObjectCache::focusedUIElementForPage):
1313         (WebCore::AXObjectCache::get):
1314         (WebCore::AXObjectCache::getOrCreate):
1315         (WebCore::AXObjectCache::contentChanged):
1316         (WebCore):
1317         (WebCore::AXObjectCache::updateCacheAfterNodeIsAttached):
1318         (WebCore::AXObjectCache::childrenChanged):
1319         (WebCore::AXObjectCache::postNotification):
1320         (WebCore::AXObjectCache::checkedStateChanged):
1321         (WebCore::AXObjectCache::selectedChildrenChanged):
1322         (WebCore::AXObjectCache::nodeTextChangeNotification):
1323         (WebCore::AXObjectCache::handleAriaExpandedChange):
1324         (WebCore::AXObjectCache::handleActiveDescendantChanged):
1325         (WebCore::AXObjectCache::handleAriaRoleChanged):
1326         (WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
1327         (WebCore::AXObjectCache::rootAXEditableElement):
1328         (WebCore::AXObjectCache::nodeIsTextControl):
1329         * accessibility/AXObjectCache.h:
1330         (AXObjectCache):
1331         (WebCore::AXObjectCache::setNodeInUse):
1332         (WebCore::AXObjectCache::removeNodeForUse):
1333         (WebCore::AXObjectCache::isNodeInUse):
1334         (WebCore::AXObjectCache::checkedStateChanged):
1335         (WebCore::AXObjectCache::childrenChanged):
1336         (WebCore::AXObjectCache::contentChanged):
1337         (WebCore::AXObjectCache::updateCacheAfterNodeIsAttached):
1338         (WebCore::AXObjectCache::handleActiveDescendantChanged):
1339         (WebCore::AXObjectCache::handleAriaExpandedChange):
1340         (WebCore::AXObjectCache::handleAriaRoleChanged):
1341         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
1342         (WebCore::AXObjectCache::nodeTextChangeNotification):
1343         (WebCore::AXObjectCache::postNotification):
1344         (WebCore::AXObjectCache::selectedChildrenChanged):
1345         * accessibility/AccessibilityListBoxOption.cpp:
1346         (WebCore::AccessibilityListBoxOption::parentObject):
1347         * accessibility/AccessibilityObject.cpp:
1348         (WebCore::appendAccessibilityObject):
1349         (WebCore::replacedNodeNeedsCharacter):
1350         * accessibility/AccessibilityRenderObject.cpp:
1351         (WebCore::AccessibilityRenderObject::menuForMenuButton):
1352         (WebCore::AccessibilityRenderObject::menuButtonForMenu):
1353         (WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
1354         (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
1355         (WebCore::AccessibilityRenderObject::titleUIElement):
1356         (WebCore::AccessibilityRenderObject::isTabItemSelected):
1357         (WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
1358         (WebCore::AccessibilityRenderObject::nodeIsTextControl):
1359         (WebCore::AccessibilityRenderObject::activeDescendant):
1360         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
1361         (WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
1362         * accessibility/AccessibilityRenderObject.h:
1363         (AccessibilityRenderObject):
1364         * accessibility/AccessibilityScrollView.cpp:
1365         (WebCore::AccessibilityScrollView::webAreaObject):
1366         (WebCore::AccessibilityScrollView::parentObject):
1367         (WebCore::AccessibilityScrollView::parentObjectIfExists):
1368         * accessibility/chromium/AXObjectCacheChromium.cpp:
1369         (WebCore::AXObjectCache::postPlatformNotification):
1370         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
1371         * accessibility/gtk/AXObjectCacheAtk.cpp:
1372         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
1373         * accessibility/mac/AXObjectCacheMac.mm:
1374         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
1375         * accessibility/win/AXObjectCacheWin.cpp:
1376         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
1377         * bindings/cpp/WebDOMCustomVoidCallback.cpp:
1378         (toWebCore):
1379         * dom/Document.cpp:
1380         (WebCore::Document::setFocusedNode):
1381         * dom/Element.cpp:
1382         (WebCore::Element::attributeChanged):
1383         * dom/Node.cpp:
1384         (WebCore::Node::~Node):
1385         (WebCore::Node::attach):
1386         * editing/AppendNodeCommand.cpp:
1387         (WebCore::sendAXTextChangedIgnoringLineBreaks):
1388         * editing/DeleteFromTextNodeCommand.cpp:
1389         (WebCore::DeleteFromTextNodeCommand::doApply):
1390         (WebCore::DeleteFromTextNodeCommand::doUnapply):
1391         * editing/Editor.cpp:
1392         (WebCore::Editor::respondToChangedContents):
1393         (WebCore::Editor::markAndReplaceFor):
1394         * editing/InsertIntoTextNodeCommand.cpp:
1395         (WebCore::InsertIntoTextNodeCommand::doApply):
1396         (WebCore::InsertIntoTextNodeCommand::doUnapply):
1397         * editing/InsertNodeBeforeCommand.cpp:
1398         (WebCore::InsertNodeBeforeCommand::doApply):
1399         (WebCore::InsertNodeBeforeCommand::doUnapply):
1400         * editing/chromium/FrameSelectionChromium.cpp:
1401         (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
1402         * html/HTMLInputElement.cpp:
1403         (WebCore::HTMLInputElement::setChecked):
1404         * html/HTMLSelectElement.cpp:
1405         (WebCore::HTMLSelectElement::childrenChanged):
1406         (WebCore::HTMLSelectElement::optionElementChildrenChanged):
1407         * html/HTMLTextFormControlElement.cpp:
1408         (WebCore::HTMLTextFormControlElement::setInnerTextValue):
1409         * html/InputType.cpp:
1410         (WebCore::InputType::applyStep):
1411         * html/RangeInputType.cpp:
1412         (WebCore::RangeInputType::handleKeydownEvent):
1413         * page/FocusController.cpp:
1414         (WebCore::FocusController::setInitialFocus):
1415
1416 2012-08-15  Andreas Kling  <kling@webkit.org>
1417
1418         NinePieceImage: Avoid unnecessary duplication of default data in assignment operator.
1419         <http://webkit.org/b/94046>
1420
1421         Reviewed by Geoffrey Garen.
1422
1423         If copying a NinePieceImage with a null m_data, don't create a copy of it's data()
1424         as that will point to the default NinePieceImageData. ~200kB progression on Membuster.
1425
1426         * rendering/style/NinePieceImage.h:
1427         (WebCore::NinePieceImage::operator=):
1428
1429 2012-08-15  Gregg Tavares  <gman@google.com>
1430
1431         Mark Skia and Compositor Contexts
1432         https://bugs.webkit.org/show_bug.cgi?id=94129
1433
1434         Reviewed by James Robinson.
1435
1436         Marks the Skia and Compositor contexts to aid in debugging.
1437
1438         No new tests as no new functionality.
1439
1440         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1441         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
1442         * platform/graphics/skia/ImageBufferSkia.cpp:
1443         (WebCore::createAcceleratedCanvas):
1444
1445 2012-08-15  Ian Vollick  <vollick@chromium.org>
1446
1447         [chromium] Must account for empty transformation lists when checking for big rotations.
1448         https://bugs.webkit.org/show_bug.cgi?id=93975
1449
1450         Reviewed by James Robinson.
1451
1452         AnimationTranslationUtil.cpp is supposed to reject large rotations 
1453         (>= 180 degrees between keyframes). The current code assumes that if 
1454         the lists of transforms at two consecutive keyframes do not match 
1455         (i.e., are different types), then do not need to reject. The rationale
1456         is that we will revert to matrix blending -- we will collapse the lists
1457         of transform operations to matrices at each keyframe and blend those. 
1458         Unfortunately, this is not true if a list is empty. It can be the case 
1459         that we transition from no transform to a rotation about the z axis of 
1460         360 degrees. In this case, the first list of transform operations will 
1461         be empty and the second will have a single rotation of 360 degrees. An 
1462         empty list should be treated as a rotation of zero degrees.
1463
1464         Unit tested in: GraphicsLayerChromiumTest.createTransformAnimationWithBigRotationAndEmptyTransformOperationList
1465
1466         * platform/graphics/chromium/AnimationTranslationUtil.cpp:
1467         (WebCore::causesRotationOfAtLeast180Degrees):
1468
1469 2012-08-15  Beth Dakin  <bdakin@apple.com>
1470
1471         https://bugs.webkit.org/show_bug.cgi?id=93693
1472         [WK2] REGRESSION(125091): pixel results don't sow scrollbars 
1473         anymore
1474
1475         Reviewed by Sam Weinig.
1476
1477         This is a regression from http://trac.webkit.org/changeset/125091 
1478         in which I failed to noticed that 
1479         WKBundlePageCreateSnapshotInViewCoordinates() did actually do 
1480         something different than 
1481         WKBundlePageCreateSnapshotInDocumentCoordinates(). Specifically, 
1482         it used ScrollView::paint() to paint instead of 
1483         FrameView::paintContents(). So this patch restores that 
1484         functionality by adding a value to SnapshotOptions indicating 
1485         whether the snapshot should be taken in ViewCoordinates 
1486         (otherwise it defaults to DocumentCoordinates).
1487
1488         FrameView:: paintContentsForSnapshot() now takes a new parameter 
1489         that indicates whether to take the snapshot in document 
1490         coordinates or view coordinates.
1491         * WebCore.exp.in:
1492         * page/FrameView.cpp:
1493         (WebCore::FrameView::paintContentsForSnapshot):
1494         * page/FrameView.h:
1495
1496 2012-08-15  Benjamin Poulain  <bpoulain@apple.com>
1497
1498         Use literal initialization for CSS's pseudo types
1499         https://bugs.webkit.org/show_bug.cgi?id=94066
1500
1501         Reviewed by Kenneth Rohde Christiansen.
1502
1503         Initialize CSS pseudo type strings with the new initialization from literal.
1504
1505         The first invocation of nameToPseudoTypeMap() becomes 20% faster and we use
1506         less memory to store the strings.
1507
1508         * css/CSSSelector.cpp:
1509         (WebCore::nameToPseudoTypeMap):
1510
1511 2012-08-15  Brady Eidson  <beidson@apple.com>
1512
1513         Removing a plug-in element from a page opened in a background tab in Safari crashes
1514         <rdar://problem/12057991> and https://bugs.webkit.org/show_bug.cgi?id=93913
1515
1516         Reviewed by Beth Dakin.
1517
1518         Expose Page::setCanStartMedia to regression tests so they can pretend to be in a non-windowed WebView.
1519
1520         Test: platform/mac-wk2/plugins/asynchronous-destroy-before-initialization.html
1521
1522         * testing/InternalSettings.cpp:
1523         (WebCore::InternalSettings::Backup::Backup):
1524         (WebCore::InternalSettings::Backup::restoreTo):
1525         (WebCore::InternalSettings::setCanStartMedia):
1526         (WebCore):
1527         * testing/InternalSettings.h:
1528         (Backup):
1529         (InternalSettings):
1530         * testing/InternalSettings.idl:
1531
1532 2012-08-15  Levi Weintraub  <leviw@chromium.org>
1533
1534         AutoTableLayout truncates preferred widths for cells when it needs to ceil them to contain the contents
1535         https://bugs.webkit.org/show_bug.cgi?id=93911
1536
1537         Reviewed by Eric Seidel.
1538
1539         Avoiding truncation of sub-pixel accumulated values when determining the preferred width of a table cell
1540         in AutoTableLayout. Since we continue to layout tables using integers, we need to ceil the contents to
1541         prevent premature wrapping of the contents.
1542
1543         This only affects ports with sub-pixel layout enabled, and fixes regressions of a handful of tests that
1544         were missed when updating expectations when sub-pixel was enabled.
1545
1546         Test: fast/sub-pixel/auto-table-layout-should-avoid-text-wrapping.html
1547
1548         * rendering/AutoTableLayout.cpp:
1549         (WebCore::AutoTableLayout::recalcColumn):
1550
1551 2012-08-10  Ojan Vafai  <ojan@chromium.org>
1552
1553         z-index should work without position on flexitems
1554         https://bugs.webkit.org/show_bug.cgi?id=91405
1555
1556         Reviewed by Tony Chang.
1557
1558         Require a layer on any RenderBox that has a non-auto z-index.
1559         Statically positioned, non-flex-item's have their z-index coerced to auto,
1560         so it's safe to check z-index unconditionally.
1561
1562         Test: css3/flexbox/z-index.html
1563
1564         * css/StyleResolver.cpp:
1565         (WebCore::StyleResolver::adjustRenderStyle):
1566         -Don't coerce z-index to auto on statically positioned flex-items.
1567         -Use the parentStyle to determine if the parent is a flexbox instead of
1568         looking at the element's parentNode's renderer.
1569         * rendering/RenderBox.h:
1570         -Add having a non-auto z-index to the list of things that require a layer.
1571
1572 2012-08-15  Joanmarie Diggs  <jdiggs@igalia.com>
1573
1574         [Gtk] atk_text_set_caret_offset() fails for table cells
1575         https://bugs.webkit.org/show_bug.cgi?id=83501
1576
1577         Reviewed by Chris Fleizach.
1578
1579         Allow using text ranges in accessible table cells.
1580
1581         * accessibility/gtk/AccessibilityObjectAtk.cpp:
1582         (WebCore::AccessibilityObject::allowsTextRanges):
1583         Add table cells to the list of accessibility objects supporting text ranges.
1584
1585 2012-08-15  Scott Graham  <scottmg@chromium.org>
1586
1587         Rename window.internals.fastMallocStatistics to mallocStatistics
1588         https://bugs.webkit.org/show_bug.cgi?id=94033
1589
1590         Reviewed by Adam Barth.
1591
1592         Mechanical rename. In preparation for plumbing allocation information
1593         from allocators that aren't "fastMalloc".
1594
1595         * CMakeLists.txt:
1596         * DerivedSources.make:
1597         * DerivedSources.pri:
1598         * GNUmakefile.list.am:
1599         * Target.pri:
1600         * WebCore.gyp/WebCore.gyp:
1601         * WebCore.gypi:
1602         * WebCore.vcproj/WebCoreTestSupport.vcproj:
1603         * WebCore.xcodeproj/project.pbxproj:
1604         * loader/DocumentLoader.h:
1605         (WebCore::DocumentLoader::didTellClientAboutLoad):
1606         * loader/cache/CachedResourceLoader.cpp:
1607         (WebCore::CachedResourceLoader::loadResource):
1608         * testing/FastMallocStatistics.h: Removed.
1609         * testing/FastMallocStatistics.idl: Removed.
1610         * testing/Internals.cpp:
1611         (WebCore::Internals::mallocStatistics):
1612         * testing/Internals.h:
1613         (WebCore):
1614         (Internals):
1615         * testing/Internals.idl:
1616         * testing/MallocStatistics.h: Added.
1617         * testing/MallocStatistics.idl: Added.
1618
1619 2012-08-15  Joshua Netterfield  <jnetterfield@rim.com>
1620
1621         [BlackBerry] Upstream BlackBerry build fixes
1622         https://bugs.webkit.org/show_bug.cgi?id=94121
1623
1624         Reviewed by Rob Buis.
1625
1626         This includes several build fixes due to incorrect upstream patches.
1627         These mistakes were never present downstream.
1628
1629         No new tests, because no new functionality is added.
1630
1631         * platform/graphics/GraphicsContext3D.cpp:
1632         (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
1633         * platform/graphics/GraphicsContext3D.h:
1634         (GraphicsContext3D):
1635         (WebCore::GraphicsContext3D::ShaderSourceEntry::ShaderSourceEntry):
1636         * platform/graphics/blackberry/LayerFilterRenderer.cpp:
1637         (WebCore::LayerFilterRendererAction::LayerFilterRendererAction):
1638         * platform/graphics/blackberry/LayerFilterRenderer.h:
1639         (LayerFilterRendererAction):
1640
1641 2012-08-15  Adam Barth  <abarth@webkit.org>
1642
1643         JSDOMWrapper should ASSERT that it has an associated ScriptExecutionContext
1644         https://bugs.webkit.org/show_bug.cgi?id=94053
1645
1646         Reviewed by Sam Weinig.
1647
1648         Previously we were unable have this ASSERT because DOMWindow needed a
1649         Frame to find Document. Now that we can find the Document without a
1650         Frame, we can include the ASSERT and sanity will rein across the land.
1651
1652         * bindings/js/JSDOMWrapper.h:
1653         (WebCore::JSDOMWrapper::globalObject):
1654         (WebCore::JSDOMWrapper::scriptExecutionContext):
1655         (WebCore::JSDOMWrapper::JSDOMWrapper):
1656
1657 2012-08-14  Mark Hahnenberg  <mhahnenberg@apple.com>
1658
1659         Change behavior of MasqueradesAsUndefined to better accommodate DFG changes
1660         https://bugs.webkit.org/show_bug.cgi?id=93884
1661
1662         Reviewed by Geoffrey Garen.
1663
1664         With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of 
1665         MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines, 
1666         we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined 
1667         objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject). 
1668         For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not 
1669         masquerade as undefined within frame B, but it will continue to masquerade in frame A.
1670
1671         Test: fast/js/document-all-between-frames.html
1672
1673         All of the changes in WebCore are simply passing the additional ExecState argument to JSValue::toBoolean.
1674
1675         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
1676         (WebCore::JSSQLStatementErrorCallback::handleEvent):
1677         * bindings/js/JSDOMWindowCustom.cpp:
1678         (WebCore::JSDOMWindow::addEventListener):
1679         (WebCore::JSDOMWindow::removeEventListener):
1680         * bindings/js/JSDataViewCustom.cpp:
1681         (WebCore::getDataViewMember):
1682         * bindings/js/JSDeviceMotionEventCustom.cpp:
1683         (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
1684         * bindings/js/JSDeviceOrientationEventCustom.cpp:
1685         (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
1686         * bindings/js/JSDictionary.cpp:
1687         (WebCore::JSDictionary::convertValue):
1688         * bindings/js/JSDirectoryEntryCustom.cpp:
1689         (WebCore::JSDirectoryEntry::getFile):
1690         (WebCore::JSDirectoryEntry::getDirectory):
1691         * bindings/js/JSDirectoryEntrySyncCustom.cpp:
1692         (WebCore::getFlags):
1693         * bindings/js/JSHTMLCanvasElementCustom.cpp:
1694         (WebCore::JSHTMLCanvasElement::getContext):
1695         * bindings/js/JSInspectorFrontendHostCustom.cpp:
1696         (WebCore::populateContextMenuItems):
1697         * bindings/js/JSMessageEventCustom.cpp:
1698         (WebCore::handleInitMessageEvent):
1699         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1700         (WebCore::dataFunctionMatrix):
1701         * bindings/js/JSXMLHttpRequestCustom.cpp:
1702         (WebCore::JSXMLHttpRequest::open):
1703         * bindings/js/JavaScriptCallFrame.cpp:
1704         (WebCore::JavaScriptCallFrame::exec):
1705         (WebCore):
1706         * bindings/js/JavaScriptCallFrame.h:
1707         (JavaScriptCallFrame):
1708         * bindings/js/ScriptDebugServer.cpp:
1709         (WebCore::ScriptDebugServer::hasBreakpoint):
1710         * bindings/scripts/CodeGeneratorJS.pm: Also add the custom create function for MasqueradesAsUndefined JS DOM wrappers.
1711         (GenerateEventListenerCall):
1712         (GenerateHeader):
1713         (JSValueToNative):
1714         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1715         (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
1716         (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
1717         * bindings/scripts/test/JS/JSTestEventTarget.h:
1718         (WebCore::JSTestEventTarget::create):
1719         * bindings/scripts/test/JS/JSTestObj.cpp:
1720         (WebCore::setJSTestObjCreate):
1721         (WebCore::setJSTestObjReflectedBooleanAttr):
1722         (WebCore::setJSTestObjReflectedCustomBooleanAttr):
1723         (WebCore::jsTestObjPrototypeFunctionAddEventListener):
1724         (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
1725         * bridge/c/c_utility.cpp:
1726         (JSC::Bindings::convertValueToNPVariant):
1727         * bridge/jni/jni_jsobject.mm:
1728         (JavaJSObject::convertValueToJObject):
1729         * bridge/qt/qt_runtime.cpp:
1730         (JSC::Bindings::convertValueToQVariant):
1731
1732 2012-08-15  Joanmarie Diggs  <jdiggs@igalia.com>
1733
1734         [Gtk] atk_text_get_text_at_offset() fails to provide the correct line for paragraphs in list items whose text wraps
1735         https://bugs.webkit.org/show_bug.cgi?id=83435
1736
1737         Reviewed by Chris Fleizach.
1738
1739         Fix a logic error when checking if an object is a list marker.
1740
1741         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
1742         (textForRenderer):
1743
1744 2012-08-15  Arpita Bahuguna  <arpitabahuguna@gmail.com>
1745
1746         There is additional space not belonged to a table between the table cells
1747         https://bugs.webkit.org/show_bug.cgi?id=74864
1748
1749         Reviewed by Julien Chaffraix.
1750
1751         Hittest for a point on the edge, i.e. between two table columns, currently
1752         does not return any matching underlying element.
1753
1754         A hittest on such a point (on the edge of two table columns) should return
1755         the column that lies either on the logical right/bottom of the said point.
1756
1757         Tests: fast/table/hittest-tablecell-bottom-edge.html
1758                fast/table/hittest-tablecell-right-edge.html
1759                fast/table/hittest-tablecell-with-borders-bottom-edge.html
1760                fast/table/hittest-tablecell-with-borders-right-edge.html
1761
1762         * rendering/RenderTableSection.cpp:
1763         (WebCore::RenderTableSection::spannedRows):
1764         Removed the FIXME regarding the correctness of the usage of the upper_bound algorithm
1765         since that is now verified by the testcases in this patch. Also, the comment
1766         regarding the inconsistency between the algorithms used in spannedRows and spannedColumns
1767         is no longer valid.
1768
1769         (WebCore::RenderTableSection::spannedColumns):
1770         Changed lower_bound() algorithm to upper_bound() for obtaining the next column.
1771         This is now similar to what is used for obtaining the next row in spannedRows().
1772
1773 2012-08-15  Anna Cavender  <annacc@chromium.org>
1774
1775         Add the timestampOffset attribute to SourceBuffer.
1776         https://bugs.webkit.org/show_bug.cgi?id=93303
1777
1778         Reviewed by Dimitri Glazkov.
1779
1780         On the 30 July 2012 version of the Media Source Extensions spec, a timestampOffset 
1781         attribute was added to the SourceBuffer object:
1782         http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#dom-timestampoffset
1783
1784         Tests: additions to http/tests/media/media-source/video-media-source-objects.html
1785
1786         * Modules/mediasource/MediaSource.cpp:
1787         (WebCore::MediaSource::setTimestampOffset): Set the timestampOffset on MediaPlayer.
1788         (WebCore):
1789         * Modules/mediasource/MediaSource.h:
1790         (MediaSource):
1791         * Modules/mediasource/SourceBuffer.cpp:
1792         (WebCore::SourceBuffer::SourceBuffer): Let the timestampOffset be 0 initially
1793         (WebCore::SourceBuffer::timestampOffset): Return the last value set.
1794         (WebCore):
1795         (WebCore::SourceBuffer::setTimestampOffset): Forward the call onto MediaSouce.
1796         * Modules/mediasource/SourceBuffer.h:
1797         (SourceBuffer):
1798         * Modules/mediasource/SourceBuffer.idl: Create the new timestampOffset attr.
1799         * platform/graphics/MediaPlayer.cpp:
1800         (WebCore::NullMediaPlayerPrivate::sourceSetTimestampOffset): A null media player
1801             should just return false (nothing to set).
1802         (WebCore):
1803         (WebCore::MediaPlayer::sourceSetTimestampOffset):  Forward the call.
1804         * platform/graphics/MediaPlayer.h:
1805         * platform/graphics/MediaPlayerPrivate.h:
1806         (WebCore::MediaPlayerPrivateInterface::sourceSetTimestampOffset):
1807
1808 2012-08-15  Pavel Chadnov  <chadnov@google.com>
1809
1810         Web Inspector: Incorrect XHR responses when two async xhrs are sent synchronously
1811         https://bugs.webkit.org/show_bug.cgi?id=91630
1812         
1813         Reviewed by Vsevolod Vlasov.
1814
1815         CachedResource object for XHR response is now taken from ResourceLoader (if it's possible).
1816
1817         Test: http/tests/inspector/network/network-xhr-async-double.html
1818
1819         * inspector/InspectorInstrumentation.cpp:
1820         (WebCore):
1821         (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
1822         (WebCore::InspectorInstrumentation::didReceiveResourceResponseButCanceledImpl):
1823         * inspector/InspectorInstrumentation.h:
1824         (InspectorInstrumentation):
1825         (WebCore::InspectorInstrumentation::didReceiveResourceResponse):
1826         * inspector/InspectorResourceAgent.cpp:
1827         (WebCore::InspectorResourceAgent::willSendRequest):
1828         (WebCore::InspectorResourceAgent::didReceiveResponse):
1829         * inspector/InspectorResourceAgent.h:
1830         (WebCore):
1831         (InspectorResourceAgent):
1832         * loader/DocumentThreadableLoader.cpp:
1833         (WebCore::DocumentThreadableLoader::didReceiveResponse):
1834         * loader/ResourceLoadNotifier.cpp:
1835         (WebCore::ResourceLoadNotifier::didReceiveResponse):
1836         (WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
1837         * loader/ResourceLoadNotifier.h:
1838         (ResourceLoadNotifier):
1839         * loader/ResourceLoader.cpp:
1840         (WebCore::ResourceLoader::isSubresourceLoader):
1841         (WebCore):
1842         * loader/ResourceLoader.h:
1843         (ResourceLoader):
1844         * loader/SubresourceLoader.cpp:
1845         (WebCore::SubresourceLoader::cachedResource):
1846         (WebCore):
1847         (WebCore::SubresourceLoader::isSubresourceLoader):
1848         * loader/SubresourceLoader.h:
1849         (SubresourceLoader):
1850         * loader/appcache/ApplicationCacheGroup.cpp:
1851         (WebCore::ApplicationCacheGroup::didReceiveResponse):
1852
1853 2012-08-15  Taiju Tsuiki  <tzik@chromium.org>
1854
1855         Web Inspector: Use default parameter on reportResult in InspectorFileSystemAgent
1856         https://bugs.webkit.org/show_bug.cgi?id=93930
1857
1858         Reviewed by Vsevolod Vlasov.
1859
1860         No functional change.
1861
1862         * inspector/InspectorFileSystemAgent.cpp:
1863         (WebCore):
1864
1865 2012-08-15  Vsevolod Vlasov  <vsevik@chromium.org>
1866
1867         Web Inspector: TabbedEditorContainer Doens't show '*' near modified file name sometimes.
1868         https://bugs.webkit.org/show_bug.cgi?id=94095
1869
1870         Reviewed by Pavel Feldman.
1871
1872         TabbedEditorContainer now correctly updates event listeners on UISourceCodeReplaced event.
1873
1874         * inspector/front-end/TabbedEditorContainer.js:
1875         (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
1876         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
1877         (WebInspector.TabbedEditorContainer.prototype._addUISourceCodeListeners):
1878         (WebInspector.TabbedEditorContainer.prototype._removeUISourceCodeListeners):
1879
1880 2012-08-15  Vsevolod Vlasov  <vsevik@chromium.org>
1881
1882         Web Inspector: Scroll/selection are not saved in sources panel editors sometimes.
1883         https://bugs.webkit.org/show_bug.cgi?id=94098
1884
1885         Reviewed by Pavel Feldman.
1886
1887         SourceFrame listeners and _currentFile field are now cleared only when currently open tab is closed.
1888
1889         * inspector/front-end/TabbedEditorContainer.js:
1890         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
1891
1892 2012-08-15  Vsevolod Vlasov  <vsevik@chromium.org>
1893
1894         Web Inspector: [REGRESSION] "save as" of edited source in developer mode fails to update saved file
1895         https://bugs.webkit.org/show_bug.cgi?id=94074
1896
1897         Reviewed by Pavel Feldman.
1898
1899         Added dirty flag check when saving uiSourceCode to save working copy in this case.
1900
1901         * inspector/front-end/HandlerRegistry.js:
1902         (WebInspector.HandlerRegistry.prototype.appendApplicableItems.save):
1903         (WebInspector.HandlerRegistry.prototype.appendApplicableItems):
1904
1905 2012-08-15  Thiago Marcos P. Santos  <thiago.santos@intel.com>
1906
1907         Relative units are not set when the canvas has not parent
1908         https://bugs.webkit.org/show_bug.cgi?id=93840
1909
1910         Reviewed by Kenneth Rohde Christiansen.
1911
1912         Set the default font when no parent style is set. It will make
1913         possible to apply relative units when a parent is not set.
1914
1915         No new tests, unskipped the existing ones.
1916
1917         * css/StyleBuilder.cpp:
1918         (WebCore::ApplyPropertyFontSize::applyValue):
1919         Make it possible to apply relative units if a parent style exist but
1920         not a parent node. It works like this for em and ex, but not for
1921         percent units.
1922         * html/canvas/CanvasRenderingContext2D.cpp:
1923         (WebCore):
1924         (WebCore::CanvasRenderingContext2D::setFont):
1925
1926 2012-08-14  Pavel Feldman  <pfeldman@chromium.org>
1927
1928         Web Inspector: split standalone test runner, test scanner and test stub.
1929         https://bugs.webkit.org/show_bug.cgi?id=94001
1930
1931         Reviewed by Vsevolod Vlasov.
1932
1933         This change starts sending loacCompleted message to the embedder.
1934
1935         * inspector/front-end/InspectorFrontendAPI.js:
1936         (InspectorFrontendAPI.loadCompleted):
1937         * inspector/front-end/test-runner.html: Added.
1938
1939 2012-08-15  Shinya Kawanaka  <shinyak@chromium.org>
1940
1941         [Refactoring] The debug version and release version of toHTMLSelectElement can be merged without any penalty
1942         https://bugs.webkit.org/show_bug.cgi?id=94084
1943
1944         Reviewed by Kent Tamura.
1945
1946         We have two versions of toHTMLSelectElement. One has ASSERT() and the other one does not have ASSERT().
1947         We can merge them without any penalty.
1948
1949         No new tests, no change in behavior.
1950
1951         * html/HTMLSelectElement.cpp:
1952         * html/HTMLSelectElement.h:
1953         (WebCore::isHTMLSelectElement):
1954         (WebCore::toHTMLSelectElement):
1955         (WebCore):
1956
1957 2012-08-15  Shinya Kawanaka  <shinyak@chromium.org>
1958
1959         AuthorShadowDOM for meter element
1960         https://bugs.webkit.org/show_bug.cgi?id=91970
1961
1962         Reviewed by Hajime Morita.
1963
1964         We add support for AuthorShadowDOM for a meter element.
1965
1966         According to the Shadow DOM spec, a meter element should behave like having a UserAgentShadowRoot and
1967         an element in UserAgentShadowRoot draws a real 'meter' bar. In this patch, we change the inner structure
1968         of a meter element so that we can distribute an element having RenderMeter to AuthorShadowDOM.
1969
1970         Before this patch, a meter element has the following inner structure.
1971
1972             <meter>--UserAgentShadowRoot -- -- -- -- -- -- -- -- -- -- AuthorShadowRoot
1973                                |
1974                                +-- MeterBarElement
1975                                |
1976                                +-- MeterValueElement
1977
1978         After this patch, a meter element will have the following inner structure.
1979
1980             <meter>--UserAgentShadowRoot -- -- -- -- -- -- -- -- -- -- AuthorShadowRoot
1981                                |
1982                                +-- MeterInnerElement
1983                                            |
1984                                            +-- MeterBarElement
1985                                            |
1986                                            +-- MeterValueElement
1987
1988         However, if RenderTheme supports rendering meter, MeterInnerElement will not create a renderer
1989         unless an AuthorShadowDOM is attached to it so that we can keep the current rendering style.
1990
1991         Tests: fast/dom/shadow/shadowdom-for-meter-dynamic.html
1992                fast/dom/shadow/shadowdom-for-meter-multiple.html
1993                fast/dom/shadow/shadowdom-for-meter-with-style.html
1994                fast/dom/shadow/shadowdom-for-meter-without-appearance.html
1995                fast/dom/shadow/shadowdom-for-meter-without-shadow-element.html
1996                fast/dom/shadow/shadowdom-for-meter.html
1997
1998         * css/html.css:
1999         (meter): Changed the display type. inline-box is not supported WebKit. inline-block is true.
2000         (meter::-webkit-meter-inner-element):
2001         * html/HTMLMeterElement.cpp:
2002         (WebCore::HTMLMeterElement::HTMLMeterElement):
2003         (WebCore::HTMLMeterElement::createRenderer):
2004         (WebCore):
2005         (WebCore::HTMLMeterElement::attach): Added didElementStateChange.
2006         (WebCore::HTMLMeterElement::didElementStateChange):
2007         (WebCore::HTMLMeterElement::willAddAuthorShadowRoot):
2008         (WebCore::HTMLMeterElement::renderMeter):
2009         (WebCore::HTMLMeterElement::createShadowSubtree):
2010         * html/HTMLMeterElement.h:
2011         (WebCore):
2012         (WebCore::HTMLMeterElement::hasAuthorShadowRoot):
2013         (HTMLMeterElement):
2014         (WebCore::isHTMLMeterElement):
2015         (WebCore::toHTMLMeterElement):
2016         * html/shadow/MeterShadowElement.cpp:
2017         (WebCore::MeterShadowElement::meterElement):
2018         (WebCore::MeterShadowElement::rendererIsNeeded):
2019         (WebCore):
2020         (WebCore::MeterInnerElement::MeterInnerElement): We introduce a new element having RenderMeter
2021         so that we can distribute an element having RenderMeter to AuthorShadowDOM.
2022         (WebCore::MeterInnerElement::rendererIsNeeded): Different from a progress element, meter element will not be
2023         rendered using a theme. So we don't need to check the style appearance.
2024         (WebCore::MeterInnerElement::createRenderer):
2025         (WebCore::MeterInnerElement::shadowPseudoId):
2026         * html/shadow/MeterShadowElement.h:
2027         (WebCore):
2028         (MeterInnerElement):
2029         (WebCore::MeterInnerElement::create):
2030         * rendering/RenderMeter.cpp:
2031         (WebCore::RenderMeter::RenderMeter):
2032         (WebCore::RenderMeter::meterElement):
2033         (WebCore):
2034         (WebCore::RenderMeter::valueRatio):
2035         * rendering/RenderMeter.h:
2036         (RenderMeter):
2037         * rendering/RenderThemeMac.mm:
2038         (WebCore::RenderThemeMac::levelIndicatorFor):
2039
2040 2012-08-15  Adam Barth  <abarth@webkit.org>
2041
2042         [Chromium] fast/dom/Window/dom-access-from-closure-window.html is flaky on Linux
2043         https://bugs.webkit.org/show_bug.cgi?id=94060
2044
2045         Reviewed by Kentaro Hara.
2046
2047         Previously, the V8 garbage collector might have collected the Document
2048         wrapper before the DOMWindow wrapper because we overwrite the
2049         "document" property of the DOMWindow during navigation.
2050
2051         This patch adds a hidden document property on the global object to
2052         ensure that the Document wrapper lives at least as long as the
2053         DOMWindow wrapper, ensuring that DOMWindows that we obtain from V8
2054         always have non-null Document objects.
2055
2056         The JavaScriptCore bindings already have this behavior.
2057
2058         Test: fast/dom/Window/dom-access-from-closure-window-with-gc.html
2059
2060         * bindings/v8/V8DOMWindowShell.cpp:
2061         (WebCore::V8DOMWindowShell::updateDocumentWrapperCache):
2062         * bindings/v8/V8HiddenPropertyName.h:
2063         (WebCore):
2064
2065 2012-08-14  Andrey Kosyakov  <caseq@chromium.org>
2066
2067         Web Inspector: Calling getEventListeners() on element with malformed javascript event listeners crashes
2068         https://bugs.webkit.org/show_bug.cgi?id=93937
2069
2070         Reviewed by Pavel Feldman.
2071
2072         - check listener function to be non-null (happens upon an exception while compiling attribute listeners)
2073
2074         * bindings/js/JSInjectedScriptHostCustom.cpp:
2075         (WebCore::getJSListenerFunctions):
2076         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2077         (WebCore::getJSListenerFunctions):
2078
2079 2012-08-14  Jan Keromnes  <janx@linux.com>
2080
2081         Web Inspector: CodeMirrorTextEditor doesn't clear execution line
2082         https://bugs.webkit.org/show_bug.cgi?id=94069
2083
2084         Reviewed by Pavel Feldman.
2085
2086         Make CodeMirrorTextEditor use line handles instead of numbers, remove
2087         typeof == "number" checks.
2088
2089         * inspector/front-end/CodeMirrorTextEditor.js:
2090         (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
2091         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
2092         (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
2093
2094 2012-08-14  Yuta Kitamura  <yutak@google.com>
2095
2096         Unreviewed. Fix Chromium-Android builds.
2097
2098         * html/TimeInputType.cpp:
2099         (WebCore::TimeInputType::TimeInputType):
2100         Declare the function as a constructor.
2101
2102 2012-08-14  Sukolsak Sakshuwong  <sukolsak@google.com>
2103
2104         Text selection in text area in auto scroll mode goes wrong.
2105         https://bugs.webkit.org/show_bug.cgi?id=74346
2106
2107         Reviewed by Ojan Vafai.
2108
2109         WebKit triggers autoscroll in text area when the user drags the cursor from inside
2110         the text area to the outside. When that happens, it gets the local cursor position
2111         relative to the node under the cursor from hit-testing, converts it to
2112         the absolute position, and then converts it to the local position relative to the
2113         text area. However, the hit-testing method of text area did not take scrolling
2114         offset into account. This caused it to give an incorrect value of the local cursor
2115         position. Make the hit-testing take scrolling offset into account.
2116
2117         Test: fast/events/autoscroll-in-textarea.html
2118
2119         * html/shadow/TextControlInnerElements.cpp:
2120         (WebCore::TextControlInnerTextElement::createRenderer):
2121         * rendering/RenderTextControl.cpp:
2122         (WebCore::RenderTextControl::hitInnerTextElement):
2123         * rendering/RenderTextControlSingleLine.cpp:
2124         (WebCore):
2125         * rendering/RenderTextControlSingleLine.h:
2126         (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
2127         (WebCore::RenderTextControlInnerBlock::hasLineIfEmpty):
2128
2129 2012-08-14  Shinya Kawanaka  <shinyak@chromium.org>
2130
2131         [Refactoring] RenderMenuList and RenderListBox should have a method to return HTMLSelectElement.
2132         https://bugs.webkit.org/show_bug.cgi?id=94061
2133
2134         Reviewed by Kent Tamura.
2135
2136         This is a preparation patch for Bug 91487. Since RenderMenuList::node() and RenderListBox::node()
2137         will not return HTMLSelectElement to fix Bug 91487, it would be good to have a method to HTMLSelectElement.
2138
2139         No new tests, no change in behavior.
2140
2141         * rendering/RenderListBox.cpp:
2142         (WebCore::RenderListBox::selectElement):
2143         (WebCore):
2144         (WebCore::RenderListBox::updateFromElement):
2145         (WebCore::RenderListBox::scrollToRevealSelection):
2146         (WebCore::RenderListBox::size):
2147         (WebCore::RenderListBox::numItems):
2148         (WebCore::RenderListBox::addFocusRingRects):
2149         (WebCore::RenderListBox::paintItemForeground):
2150         (WebCore::RenderListBox::paintItemBackground):
2151         (WebCore::RenderListBox::panScroll):
2152         (WebCore::RenderListBox::autoscroll):
2153         (WebCore::RenderListBox::stopAutoscroll):
2154         (WebCore::RenderListBox::valueChanged):
2155         (WebCore::RenderListBox::nodeAtPoint):
2156         * rendering/RenderListBox.h:
2157         (WebCore):
2158         (RenderListBox):
2159         * rendering/RenderMenuList.cpp:
2160         (WebCore::RenderMenuList::selectElement):
2161         (WebCore):
2162         (WebCore::RenderMenuList::updateOptionsWidth):
2163         (WebCore::RenderMenuList::updateFromElement):
2164         (WebCore::RenderMenuList::setTextFromOption):
2165         (WebCore::RenderMenuList::showPopup):
2166         (WebCore::RenderMenuList::valueChanged):
2167         (WebCore::RenderMenuList::listBoxSelectItem):
2168         (WebCore::RenderMenuList::multiple):
2169         (WebCore::RenderMenuList::didSetSelectedIndex):
2170         (WebCore::RenderMenuList::didUpdateActiveOption):
2171         (WebCore::RenderMenuList::itemText):
2172         (WebCore::RenderMenuList::itemAccessibilityText):
2173         (WebCore::RenderMenuList::itemToolTip):
2174         (WebCore::RenderMenuList::itemIsEnabled):
2175         (WebCore::RenderMenuList::itemStyle):
2176         (WebCore::RenderMenuList::itemBackgroundColor):
2177         (WebCore::RenderMenuList::listSize):
2178         (WebCore::RenderMenuList::selectedIndex):
2179         (WebCore::RenderMenuList::itemIsSeparator):
2180         (WebCore::RenderMenuList::itemIsLabel):
2181         (WebCore::RenderMenuList::itemIsSelected):
2182         (WebCore::RenderMenuList::setTextFromItem):
2183         * rendering/RenderMenuList.h:
2184         (WebCore):
2185         (RenderMenuList):
2186
2187 2012-08-10  Kinuko Yasuda  <kinuko@chromium.org>
2188
2189         FileWriter fails with assertion when trying to write empty Blob
2190         https://bugs.webkit.org/show_bug.cgi?id=93694
2191
2192         Reviewed by Kent Tamura.
2193
2194         if the given data size is zero (i.e. m_bytesToWrite is zero) the assertion 'bytes + m_bytesWritten > 0' should not be tested.
2195
2196         Tests: fast/filesystem/file-writer-empty-blob.html
2197                fast/filesystem/workers/file-writer-empty-blob.html
2198
2199         * Modules/filesystem/FileWriter.cpp:
2200         (WebCore::FileWriter::didWrite):
2201
2202 2012-08-14  Keishi Hattori  <keishi@webkit.org>
2203
2204         Share common code between calendar picker and color suggestion picker
2205         https://bugs.webkit.org/show_bug.cgi?id=93802
2206
2207         Reviewed by Kent Tamura.
2208
2209         We want to share common code like utility functions between picker page popups.
2210
2211         No new tests because no behavior change. Covered by existing tests, color-suggestion-picker-appearance.html and calendar-picker-apeparance.html.
2212
2213         * Resources/pagepopups/calendarPicker.js:
2214         (YearMonthController.prototype.attachTo):
2215         (YearMonthController.prototype._showPopup):
2216         * Resources/pagepopups/colorSuggestionPicker.js:
2217         (handleMessage):
2218         (handleArgumentsTimeout):
2219         * Resources/pagepopups/pickerCommon.css: Added.
2220         (body):
2221         * Resources/pagepopups/pickerCommon.js: Added.
2222         (createElement):
2223         (resizeWindow):
2224         (getScrollbarWidth):
2225         * WebCore.gyp/WebCore.gyp: Add actions for pickerCommon.{css,js}
2226         * html/shadow/CalendarPickerElement.cpp:
2227         (WebCore::CalendarPickerElement::writeDocument):
2228
2229 2012-08-14  Ojan Vafai  <ojan@chromium.org>
2230
2231         Fix access to m_markupBox in WebCore::EllipsisBox::paint
2232         https://bugs.webkit.org/show_bug.cgi?id=91138
2233
2234         Reviewed by Abhishek Arya.
2235
2236         EllipsisBox would hold on to m_markupBox, which would then get destroyed during
2237         the followup layoutIfNeeded in layoutVerticalBox. Instead, have EllipsisBox
2238         dynamically grab to pointer to the markup box during paint since there's no
2239         straightforward way to notify the EllipsisBox that the markupBox has been destroyed
2240         and/or point it at the new markupBox.
2241
2242         Test: fast/overflow/line-clamp-and-columns.html
2243
2244         * rendering/EllipsisBox.cpp:
2245         (WebCore::EllipsisBox::paint):
2246         (WebCore):
2247         (WebCore::EllipsisBox::paintMarkupBox):
2248         * rendering/EllipsisBox.h:
2249         (WebCore::EllipsisBox::EllipsisBox):
2250         Just store a boolean that we have a markup box that needs painting.
2251         * rendering/RenderDeprecatedFlexibleBox.cpp:
2252         (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
2253         Clearing the override size right after setting it was incorrect because
2254         there are cases where we'll do a followup layout in layoutVerticalBox, at which
2255         point we'll still need the override size.
2256         (WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):
2257         Clear the override size here to handle cases where line clamp is removed since
2258         we don't call applyLineClamp in those cases.
2259
2260 2012-08-14  Yoshifumi Inoue  <yosin@chromium.org>
2261
2262         [Forms] Make input type "time" to use multiple field time input UI
2263         https://bugs.webkit.org/show_bug.cgi?id=93929
2264
2265         Reviewed by Kent Tamura.
2266
2267         This patch changes input type "time" UI to use multiple field time
2268         input UI when build flag ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS
2269         enabled.
2270
2271         No new tests. This patch doesn't change behavior for users, however,
2272         this patch changes behavior on layout tests. Tests will be added
2273         in another patch with runtime enabled feature flag is enabled.
2274
2275         Test expectations for following tests are updated:
2276          - fast/forms/time/time-input-visible-string.html
2277          - fast/forms/time/time-stepup-stepdown-from-renderer.html
2278
2279         * html/BaseDateAndTimeInputType.h:
2280         (BaseDateAndTimeInputType): Exposed serialize() to derived classes.
2281         * html/TimeInputType.cpp:
2282         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::DateTimeEditControlOwnerImpl):
2283         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::~DateTimeEditControlOwnerImpl):
2284         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::editControlMouseFocus):
2285         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::editControlValueChanged):
2286         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerDisabled):
2287         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerReadOnly):
2288         (WebCore::TimeInputType::TimeInputType):
2289         (WebCore::TimeInputType::~TimeInputType):
2290         (WebCore::TimeInputType::createRenderer):
2291         (WebCore::TimeInputType::createShadowSubtree):
2292         (WebCore::TimeInputType::destroyShadowSubtree):
2293         (WebCore::TimeInputType::forwardEvent):
2294         (WebCore::TimeInputType::disabledAttributeChanged):
2295         (WebCore::TimeInputType::handleKeydownEvent):
2296         (WebCore::TimeInputType::handleDOMActivateEvent):
2297         (WebCore::TimeInputType::isKeyboardFocusable):
2298         (WebCore::TimeInputType::isMouseFocusable):
2299         (WebCore::TimeInputType::minOrMaxAttributeChanged):
2300         (WebCore::TimeInputType::readonlyAttributeChanged):
2301         (WebCore::TimeInputType::isTextField):
2302         (WebCore::TimeInputType::setValue):
2303         (WebCore::TimeInputType::shouldUseInputMethod):
2304         (WebCore::TimeInputType::stepAttributeChanged):
2305         (WebCore::TimeInputType::updateEditElementLayout):
2306         (WebCore::TimeInputType::updateInnerTextValue):
2307         (WebCore::TimeInputType):
2308         * html/TimeInputType.h:
2309         (TimeInputType):
2310         (DateTimeEditControlOwnerImpl):
2311
2312 2012-08-14  Dean Jackson  <dino@apple.com>
2313
2314         Initial call to webkitRequestAnimationFrame returns 0, Spec indicates the handle should always be > 0
2315         https://bugs.webkit.org/show_bug.cgi?id=85819
2316
2317         Reviewed by James Robinson.
2318
2319         The callback id returned by requestAnimationFrame was beginning at zero, when the spec
2320         says it should be above one. Use a pre-increment rather than a post-increment.
2321
2322         Test: fast/animation/request-animation-frame-callback-id.html
2323
2324         * dom/ScriptedAnimationController.cpp:
2325         (WebCore::ScriptedAnimationController::registerCallback): Pre-increment rather than post-increment.
2326
2327 2012-08-14  Levi Weintraub  <leviw@chromium.org>
2328
2329         r125591 broke tests with SUBPIXEL_LAYOUT disabled
2330         https://bugs.webkit.org/show_bug.cgi?id=94027
2331
2332         Reviewed by Eric Seidel.
2333
2334         The previous patch to fix block preferred widths for subpixel layout broke ports
2335         without the flag enabled. This patch adds a static inline function --
2336         adjustFloatForSubPixelLayout -- that truncates with sub-pixel layout disabled, and
2337         ceil's to the nearest FractionalLayoutUnit when sub-pixel layout is enabled.
2338
2339         A block's max preferred width should be enough to layout the entire line without
2340         wrapping. r125591 addressed a bug whereby converting floats to LayoutUnits with sub-
2341         pixel layout enabled lost precision in certain cases, and could result in a line
2342         being layed out to slightly over the max preferred width of the block.
2343
2344         This patch reverts the behavior when sub-pixel layout is disabled to truncating
2345         sub-pixel values (such as those that originate in Length) when assigning them to
2346         LayoutUnits, and ceiling the length of the entire line to the next largest integer.
2347
2348         Covered by existing tests.
2349
2350         * rendering/RenderBlock.cpp:
2351         (WebCore):
2352         (WebCore::adjustFloatForSubPixelLayout):
2353         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
2354
2355 2012-08-14  Chris Evans  <cevans@google.com>
2356
2357         Handle the XPath / (root) operator correctly for nodes that aren't attached to the document.
2358         https://bugs.webkit.org/show_bug.cgi?id=36427
2359
2360         Reviewed by Abhishek Arya.
2361
2362         We now behave the same as Firefox 14.
2363         The consensus seems to be that the XPath spec is ambiguous for the case of detached nodes, and that using the fragment root is more intuitive than the document root for the case of detached nodes.
2364         For example, http://www.w3.org/TR/xpath/ section 2 "Location Paths" is only clear for attached nodes: "A / by itself selects the root node of the document containing the context node. If it is followed by a relative location path, then the location path selects the set of nodes that would be selected by the relative location path relative to the root node of the document containing the context node."
2365
2366         Test: fast/xpath/xpath-detached-nodes.html
2367
2368         * xml/XPathPath.cpp:
2369         (WebCore::XPath::LocationPath::evaluate): Jump to the root of the detached subtree instead of the parent document if the node isn't attached to the document.
2370
2371 2012-08-14  Alexandru Chiculita  <achicu@adobe.com>
2372
2373         [CSS Shaders][Chromium] Filters area applied twice when CustomFilterOperation is in the list
2374         https://bugs.webkit.org/show_bug.cgi?id=93900
2375
2376         Reviewed by James Robinson.
2377
2378         Whenever the platform cannot render a shader in hardware it will fallback to software. 
2379         In such cases, the platform should remove any old filters applied, so that the filters do not apply twice.
2380         
2381         Test: css3/filters/custom/filter-fallback-to-software.html
2382
2383         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2384         (WebCore::GraphicsLayerChromium::setFilters):
2385
2386 2012-08-14  Alec Flett  <alecflett@chromium.org>
2387
2388         IndexedDB: add tracing to IDBLevelDBBackingStore
2389         https://bugs.webkit.org/show_bug.cgi?id=93914
2390
2391         Reviewed by Tony Chang.
2392
2393         Add a bunch of trace events to the lower level
2394         database layer, to separate database slowness
2395         from core IDB slowness.
2396
2397         Also moving findKeyInIndex into IDBLevelDBBackingStore to
2398         eventually make it const.
2399
2400         No new tests, just adding debug logging.
2401
2402         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
2403         (WebCore::IDBLevelDBBackingStore::open):
2404         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
2405         (WebCore::IDBLevelDBBackingStore::getObjectStores):
2406         (WebCore::IDBLevelDBBackingStore::createObjectStore):
2407         (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
2408         (WebCore::IDBLevelDBBackingStore::getObjectStoreRecord):
2409         (WebCore):
2410         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
2411         (WebCore::IDBLevelDBBackingStore::clearObjectStore):
2412         (WebCore::IDBLevelDBBackingStore::deleteObjectStoreRecord):
2413         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
2414         (WebCore::IDBLevelDBBackingStore::getIndexes):
2415         (WebCore::IDBLevelDBBackingStore::createIndex):
2416         (WebCore::IDBLevelDBBackingStore::deleteIndex):
2417         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
2418         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
2419         (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
2420         (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
2421         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
2422         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
2423         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
2424         (WebCore::IDBLevelDBBackingStore::Transaction::commit):
2425         (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
2426         * Modules/indexeddb/IDBLevelDBBackingStore.h:
2427         (IDBLevelDBBackingStore):
2428         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
2429         (WebCore):
2430         * Modules/indexeddb/IDBTransaction.cpp:
2431         (WebCore::IDBTransaction::onAbort):
2432         (WebCore::IDBTransaction::onComplete):
2433
2434 2012-08-14  Hayato Ito  <hayato@chromium.org>
2435
2436         Refactor EventDispatcher, moving code to make actual changes easier to review later.
2437         https://bugs.webkit.org/show_bug.cgi?id=93959
2438
2439         Reviewed by Dimitri Glazkov.
2440
2441         No new tests - no new functionality.
2442
2443         * dom/EventDispatcher.cpp:
2444         (WebCore::EventDispatcher::dispatchScopedEvent):
2445         (WebCore):
2446         (WebCore::EventDispatcher::dispatchSimulatedClick):
2447
2448 2012-08-14  Kihong Kwon  <kihong.kwon@samsung.com>
2449
2450         Clear pattern to prevent timing problem between cancelVibration and vibrate
2451         https://bugs.webkit.org/show_bug.cgi?id=93957
2452
2453         Reviewed by Kentaro Hara.
2454
2455         There is a timing issue in the cancelVibration.
2456         Since vibrate works based on timer, cancelVibration might be called
2457         eariler than vibrate when cancelVibration is called just after vibrate call.
2458         It can be prevented from clearing m_pattern in the cancelVibration.
2459
2460         * Modules/vibration/Vibration.cpp:
2461         (WebCore::Vibration::cancelVibration):
2462
2463 2012-08-14  Alexandru Chiculita  <achicu@adobe.com>
2464
2465         Layout Test css3/filters/custom/custom-filter-animation.html is failing
2466         https://bugs.webkit.org/show_bug.cgi?id=91769
2467
2468         Reviewed by Dean Jackson.
2469
2470         Mountain Lion added support for accelerated filter animations, but CSS Shaders are still
2471         rendered in software mode. The setFilters method is using PlatformCALayer::filtersCanBeComposited to check
2472         if the filters can be handled in hardwawre, so I've reused that in the createFilterAnimationsFromKeyframes
2473         to check if the animations can also run in hardware.
2474
2475         Also the GraphicsContext3D doesn't update its own internal m_boundFBO when a framebuffer is deleted,
2476         so I've added that to the FECustomFilter. Otherwise, if the next framebuffer is created using the same
2477         identifier, bindFramebuffer will just return without calling the glBindFramebuffer because of this optimization.
2478
2479         The documentation for glDeleteFramebuffer says that the bound framebuffer is unbound before deleting it.
2480         This is not reproduceable from WebGL, because WebGLRenderingContext::deleteFramebuffer
2481         already knows to unbind the framebuffer when needed. However, I'm also adding that in GraphicsContext3DOpenGLCommon.cpp
2482         and efl/GraphicsContext3DPrivate.cpp, to make sure that m_boundFBO is not used for other purposes.
2483
2484         No new tests, this patch fixes a failing test.
2485
2486         * platform/graphics/ca/GraphicsLayerCA.cpp:
2487         (WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes):
2488         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
2489         (WebCore::GraphicsContext3DPrivate::deleteFramebuffer):
2490         * platform/graphics/filters/FECustomFilter.cpp:
2491         (WebCore::FECustomFilter::deleteRenderBuffers):
2492         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2493         (WebCore::GraphicsContext3D::deleteFramebuffer):
2494
2495 2012-08-14  Adam Barth  <abarth@webkit.org>
2496
2497         Delete Frame::domWindow() and Frame::existingDOMWindow()
2498         https://bugs.webkit.org/show_bug.cgi?id=93990
2499
2500         Reviewed by Eric Seidel.
2501
2502         These functions just call through to document()->domWindow(). This
2503         patch updates the callers so it's clearer what's going on.
2504
2505         * bindings/js/JSDOMBinding.cpp:
2506         (WebCore::shouldAllowAccessToFrame):
2507         (WebCore::printErrorMessageForFrame):
2508         * bindings/js/JSDocumentCustom.cpp:
2509         (WebCore::JSDocument::location):
2510         (WebCore::JSDocument::setLocation):
2511         * bindings/js/JSEventListener.cpp:
2512         (WebCore::JSEventListener::handleEvent):
2513         * bindings/js/ScriptCachedFrameData.cpp:
2514         (WebCore::ScriptCachedFrameData::restore):
2515         * bindings/js/ScriptController.cpp:
2516         (WebCore::ScriptController::createWindowShell):
2517         * bindings/objc/DOMAbstractView.mm:
2518         (core):
2519         * bindings/v8/NPV8Object.cpp:
2520         (WebCore::toV8Context):
2521         * bindings/v8/ScriptController.cpp:
2522         (WebCore::createScriptObject):
2523         (WebCore::ScriptController::createScriptObjectForPluginElement):
2524         * bindings/v8/V8DOMWindowShell.cpp:
2525         (WebCore::V8DOMWindowShell::initContextIfNeeded):
2526         * bindings/v8/V8IsolatedContext.cpp:
2527         (WebCore::V8IsolatedContext::V8IsolatedContext):
2528         * bindings/v8/V8Proxy.cpp:
2529         (WebCore::V8Proxy::retrieveFrame):
2530         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2531         (WebCore::V8DOMWindow::indexedPropertyGetter):
2532         (WebCore::V8DOMWindow::namedPropertyGetter):
2533         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
2534         (WebCore::V8Document::locationAccessorGetter):
2535         (WebCore::V8Document::locationAccessorSetter):
2536         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
2537         (WebCore::V8HTMLDocument::GetNamedProperty):
2538         * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
2539         (WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
2540         * dom/Document.cpp:
2541         (WebCore::printNavigationErrorMessage):
2542         * dom/ViewportArguments.cpp:
2543         (WebCore::reportViewportWarning):
2544         * editing/AlternativeTextController.cpp:
2545         (WebCore::AlternativeTextController::insertDictatedText):
2546         * editing/Editor.cpp:
2547         (WebCore::Editor::pasteAsPlainText):
2548         (WebCore::Editor::pasteAsFragment):
2549         (WebCore::Editor::setComposition):
2550         * history/PageCache.cpp:
2551         (WebCore::logCanCacheFrameDecision):
2552         (WebCore::PageCache::canCachePageContainingThisFrame):
2553         * html/HTMLFormElement.cpp:
2554         (WebCore::HTMLFormElement::validateInteractively):
2555         * html/HTMLFrameOwnerElement.cpp:
2556         (WebCore::HTMLFrameOwnerElement::contentWindow):
2557         * html/canvas/WebGLRenderingContext.cpp:
2558         (WebCore):
2559         (WebCore::WebGLRenderingContext::printWarningToConsole):
2560         * inspector/InspectorDOMStorageAgent.cpp:
2561         (WebCore::InspectorDOMStorageAgent::storageId):
2562         * loader/DocumentLoader.cpp:
2563         (WebCore::DocumentLoader::checkLoadComplete):
2564         * loader/DocumentWriter.cpp:
2565         (WebCore::DocumentWriter::begin):
2566         * loader/FrameLoader.cpp:
2567         (WebCore::FrameLoader::stopLoading):
2568         (WebCore::FrameLoader::didOpenURL):
2569         (WebCore::FrameLoader::checkIfDisplayInsecureContent):
2570         (WebCore::FrameLoader::checkIfRunInsecureContent):
2571         (WebCore::FrameLoader::reportLocalLoadFailed):
2572         (WebCore::FrameLoader::prepareForCachedPageRestore):
2573         (WebCore::FrameLoader::open):
2574         (WebCore::FrameLoader::fireBeforeUnloadEvent):
2575         * loader/MainResourceLoader.cpp:
2576         (WebCore::MainResourceLoader::didReceiveResponse):
2577         * loader/appcache/ApplicationCacheGroup.cpp:
2578         (WebCore::ApplicationCacheGroup::abort):
2579         (WebCore::ApplicationCacheGroup::didReceiveResponse):
2580         (WebCore::ApplicationCacheGroup::didFinishLoading):
2581         (WebCore::ApplicationCacheGroup::didFail):
2582         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
2583         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
2584         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
2585         * loader/cache/CachedResourceLoader.cpp:
2586         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
2587         * page/DOMWindow.cpp:
2588         (WebCore::DOMWindow::isCurrentlyDisplayedInFrame):
2589         (WebCore::DOMWindow::self):
2590         (WebCore::DOMWindow::opener):
2591         (WebCore::DOMWindow::parent):
2592         (WebCore::DOMWindow::top):
2593         (WebCore::DOMWindow::createWindow):
2594         (WebCore::DOMWindow::open):
2595         * page/DOMWindowProperty.cpp:
2596         (WebCore::DOMWindowProperty::DOMWindowProperty):
2597         (WebCore::DOMWindowProperty::reconnectFrameFromPageCache):
2598         * page/DragController.cpp:
2599         (WebCore::DragController::dispatchTextInputEventFor):
2600         * page/EventHandler.cpp:
2601         (WebCore::EventHandler::handleTextInputEvent):
2602         * page/Frame.cpp:
2603         * page/Frame.h:
2604         (Frame):
2605         * page/Location.cpp:
2606         (WebCore::Location::replace):
2607         (WebCore::Location::reload):
2608         (WebCore::Location::setLocation):
2609         * storage/StorageEventDispatcher.cpp:
2610         (WebCore::StorageEventDispatcher::dispatch):
2611         * svg/SVGDocumentExtensions.cpp:
2612         (WebCore::reportMessage):
2613         * xml/XSLStyleSheetLibxslt.cpp:
2614         (WebCore::XSLStyleSheet::parseString):
2615         * xml/XSLTProcessorLibxslt.cpp:
2616         (WebCore::docLoaderFunc):
2617         * xml/XSLTProcessorQt.cpp:
2618         (WebCore::XSLTMessageHandler::handleMessage):
2619
2620 2012-08-14  Mike West  <mkwst@chromium.org>
2621
2622         Tighten up parsing the 'script-nonce' CSP directive value.
2623         https://bugs.webkit.org/show_bug.cgi?id=93783
2624
2625         Reviewed by Adam Barth.
2626
2627         Currently we're accepting any non-whitespace character. This patch
2628         limits the valid characters to VCHAR minus ',' and ';', and pulls the
2629         validity check out into a named function for clarity.
2630
2631         Test: http/tests/security/contentSecurityPolicy/1.1/scriptnonce-separators-allowed.html
2632
2633         * page/ContentSecurityPolicy.cpp:
2634         (WebCore::CSPDirectiveList::parseScriptNonce):
2635
2636 2012-08-14  Adam Barth  <abarth@webkit.org>
2637
2638         Delete DOMWindow::m_url
2639         https://bugs.webkit.org/show_bug.cgi?id=93989
2640
2641         Reviewed by Eric Seidel.
2642
2643         There's no reason for DOMWindow to keep a separate copy of the
2644         Document's URL now that there is a predictable way to get a Document
2645         from a DOMWindow.
2646
2647         * loader/DocumentWriter.cpp:
2648         (WebCore::DocumentWriter::begin):
2649         * loader/FrameLoader.cpp:
2650         (WebCore::FrameLoader::open):
2651         * page/DOMWindow.cpp:
2652         (WebCore::DOMWindow::crossDomainAccessErrorMessage):
2653         * page/DOMWindow.h:
2654         (DOMWindow):
2655
2656 2012-08-14  Nikhil Bhargava  <nbhargava@google.com>
2657
2658         De-inline stuff from RenderStyle.h
2659         https://bugs.webkit.org/show_bug.cgi?id=94019
2660
2661         Reviewed by Eric Seidel.
2662
2663         De-inline things from RenderStyle.h in preparation of fixing a series of
2664         errant includes.
2665
2666         No new tests. Doesn't change functionality
2667
2668         * WebCore.exp.in:
2669         * rendering/style/RenderStyle.cpp:
2670         (WebCore::RenderStyle::listStyleImage):
2671         (WebCore::RenderStyle::setListStyleImage):
2672         (WebCore):
2673         (WebCore::RenderStyle::color):
2674         (WebCore::RenderStyle::visitedLinkColor):
2675         (WebCore::RenderStyle::setColor):
2676         (WebCore::RenderStyle::setVisitedLinkColor):
2677         (WebCore::RenderStyle::horizontalBorderSpacing):
2678         (WebCore::RenderStyle::verticalBorderSpacing):
2679         (WebCore::RenderStyle::setHorizontalBorderSpacing):
2680         (WebCore::RenderStyle::setVerticalBorderSpacing):
2681         (WebCore::RenderStyle::font):
2682         (WebCore::RenderStyle::fontMetrics):
2683         (WebCore::RenderStyle::fontDescription):
2684         (WebCore::RenderStyle::fontSize):
2685         (WebCore::RenderStyle::wordSpacing):
2686         (WebCore::RenderStyle::letterSpacing):
2687         (WebCore::RenderStyle::setFontDescription):
2688         (WebCore::RenderStyle::lineHeight):
2689         (WebCore::RenderStyle::setLineHeight):
2690         (WebCore::RenderStyle::computedLineHeight):
2691         (WebCore::RenderStyle::setWordSpacing):
2692         (WebCore::RenderStyle::setLetterSpacing):
2693         * rendering/style/RenderStyle.h:
2694
2695 2012-08-14  Andrei Onea  <onea@adobe.com>
2696
2697         [CSSRegions]Region overset property is incorectly computed when content has negative letter spacing and is flowed near to the edge of a region
2698         https://bugs.webkit.org/show_bug.cgi?id=92506
2699
2700         Reviewed by Eric Seidel.
2701
2702         When the content which is flowed inside a region creates visual overflow in
2703         the writing direction, the overflow rect is also extended in the other direction, and
2704         that forces regionOverset to become "fit" for all regions.
2705
2706         Tests: fast/regions/element-region-overset-state-negative-letter-spacing.html
2707                fast/regions/element-region-overset-state-vertical-rl-negative-letter-spacing.html
2708
2709         * rendering/RenderFlowThread.cpp:
2710         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
2711
2712 2012-08-14  Florin Malita  <fmalita@chromium.org>
2713
2714         beginElement() does not observe updated animation attributes
2715         https://bugs.webkit.org/show_bug.cgi?id=93972
2716
2717         Reviewed by Dirk Schulze.
2718
2719         The SVG animation attributes 'from', 'to' and 'by' should be registered as supported
2720         SVGSMILElement attributes in order to trigger animationAttributeChanged() on dynamic
2721         updates.
2722
2723         Test: svg/animations/updated-attributes.html
2724
2725         * svg/SVGAnimationElement.cpp:
2726         (WebCore::SVGAnimationElement::updateAnimation):
2727         Minor optimization - avoid recalculating animationMode().
2728
2729         * svg/animation/SVGSMILElement.cpp:
2730         (WebCore::SVGSMILElement::isSupportedAttribute):
2731         Register 'from', 'to' and 'by' as supported SVGSMILElement attributes.
2732
2733 2012-08-14  Filip Spacek  <fspacek@rim.com>
2734
2735         [BlackBerry] Don't crash on OOM in AC
2736         https://bugs.webkit.org/show_bug.cgi?id=93999
2737
2738         Reviewed by George Staikos.
2739
2740         Internally reviewed by George Staikos.
2741
2742         Fail gracefully in case we fail to allocate the bitmap
2743         for the AC layer contents.
2744
2745         * platform/graphics/blackberry/InstrumentedPlatformCanvas.h:
2746         (WebCore::InstrumentedPlatformCanvas::InstrumentedPlatformCanvas):
2747         * platform/graphics/blackberry/LayerWebKitThread.cpp:
2748         (WebCore::LayerWebKitThread::paintContents):
2749
2750 2012-08-14  Lauro Neto  <lauro.neto@openbossa.org>
2751
2752         Convert signals/slots to Q_* macros.
2753
2754         [Qt] Use Q_SLOTS and Q_SIGNALS instead of slots and signals
2755         https://bugs.webkit.org/show_bug.cgi?id=93996
2756
2757         Reviewed by Kenneth Rohde Christiansen.
2758
2759         Change usage of keyword-conflicting 'signals' and 'slots' for
2760         Q_SIGNALS and Q_SLOTS macro.
2761
2762         * bridge/testqtbindings.cpp:
2763         (MyObject):
2764         * platform/graphics/gstreamer/PlatformVideoWindowPrivate.h:
2765         * platform/graphics/qt/MediaPlayerPrivateQt.h:
2766         (MediaPlayerPrivateQt):
2767         * platform/network/qt/DnsPrefetchHelper.h:
2768         (DnsPrefetchHelper):
2769         * platform/network/qt/NetworkStateNotifierPrivate.h:
2770         (NetworkStateNotifierPrivate):
2771         * platform/network/qt/QNetworkReplyHandler.h:
2772         (QNetworkReplyHandler):
2773         * platform/network/qt/QtMIMETypeSniffer.h:
2774         (QtMIMETypeSniffer):
2775         * platform/network/qt/SocketStreamHandlePrivate.h:
2776         (SocketStreamHandlePrivate):
2777         * platform/qt/GamepadsQt.cpp:
2778         (GamepadDeviceLinuxQt):
2779         (GamepadsQt):
2780         * platform/qt/SharedTimerQt.cpp:
2781         (SharedTimerQt):
2782
2783 2012-08-14  Andrei Onea  <onea@adobe.com>
2784
2785         [CSSRegions]regionOverset is computed as "overset" even though the region is not the last in the chain
2786         https://bugs.webkit.org/show_bug.cgi?id=93102
2787
2788         Reviewed by Eric Seidel.
2789
2790         Making Element.webkitRegionOverset return "overset" only for the last region in a region chain, 
2791         if the content cannot fit inside it, to reflect current spec. http://www.w3.org/TR/css3-regions/#dom-region-regionoverset
2792
2793         * rendering/RenderFlowThread.cpp:
2794         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
2795
2796 2012-08-14  Jan Keromnes  <janx@linux.com>
2797
2798         Web Inspector: Render breakpoint gutter markers and execution line in CodeMirrorTextEditor
2799         https://bugs.webkit.org/show_bug.cgi?id=93686
2800
2801         Reviewed by Pavel Feldman.
2802
2803         Divided TextEditor.addDecoration into addBreakpoint, setExecutionLine
2804         and addDecoration. Same for removeDecoration. Render breakpoint
2805         markers and execution line in CodeMirrorTextEditor.
2806
2807         * inspector/front-end/CodeMirrorTextEditor.js:
2808         (WebInspector.CodeMirrorTextEditor):
2809         (WebInspector.CodeMirrorTextEditor.prototype._onGutterClick):
2810         (WebInspector.CodeMirrorTextEditor.prototype.addBreakpoint):
2811         (WebInspector.CodeMirrorTextEditor.prototype.removeBreakpoint):
2812         (WebInspector.CodeMirrorTextEditor.prototype.setExecutionLine):
2813         (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
2814         (WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
2815         (WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
2816         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
2817         (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
2818         (WebInspector.CodeMirrorTextEditor.prototype.removeAttribute):
2819         * inspector/front-end/DefaultTextEditor.js:
2820         (WebInspector.DefaultTextEditor.prototype._onMouseDown):
2821         (WebInspector.DefaultTextEditor.prototype.addBreakpoint):
2822         (WebInspector.DefaultTextEditor.prototype.removeBreakpoint):
2823         (WebInspector.DefaultTextEditor.prototype.setExecutionLine):
2824         (WebInspector.DefaultTextEditor.prototype.clearExecutionLine):
2825         (WebInspector.DefaultTextEditor.prototype.addDecoration):
2826         (WebInspector.DefaultTextEditor.prototype.removeDecoration):
2827         * inspector/front-end/JavaScriptSourceFrame.js:
2828         (WebInspector.JavaScriptSourceFrame):
2829         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
2830         (WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointDecoration):
2831         (WebInspector.JavaScriptSourceFrame.prototype.setExecutionLine):
2832         (WebInspector.JavaScriptSourceFrame.prototype.clearExecutionLine):
2833         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
2834         * inspector/front-end/TextEditor.js:
2835         (WebInspector.TextEditor.prototype.addBreakpoint):
2836         (WebInspector.TextEditor.prototype.removeBreakpoint):
2837         (WebInspector.TextEditor.prototype.setExecutionLine):
2838         (WebInspector.TextEditor.prototype.clearExecutionLine):
2839         (WebInspector.TextEditor.prototype.addDecoration):
2840         (WebInspector.TextEditor.prototype.removeDecoration):
2841         * inspector/front-end/cmdevtools.css:
2842         (.CodeMirror):
2843         (.cm-highlight):
2844         (@-webkit-keyframes fadeout):
2845         (to):
2846         (.cm-breakpoint):
2847         (.cm-breakpoint-disabled):
2848         (.cm-breakpoint-conditional):
2849         (.cm-execution-line):
2850         (.webkit-html-message-bubble):
2851         (.webkit-html-warning-message):
2852         (.webkit-html-error-message):
2853         (.webkit-html-message-line):
2854         (.webkit-html-message-line-hover):
2855
2856 2012-08-13  Adrienne Walker  <enne@google.com>
2857
2858         REGRESSION (r109851): Video controls do not render
2859         https://bugs.webkit.org/show_bug.cgi?id=93859
2860
2861         Reviewed by Simon Fraser.
2862
2863         Because video layers can't act as an ancestor composited layer whose
2864         backing can be shared by child layers, any child layer of a video
2865         layer needs to be put into its own composited layer. Because this is
2866         technically overlap, the "overlap" indirect compositing reason is
2867         reused for this case.
2868
2869         Test: compositing/video/video-controls-layer-creation.html
2870
2871         * rendering/RenderLayerCompositor.cpp:
2872         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
2873
2874 2012-08-14  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2875
2876         WebKitTestRunner needs layoutTestController.dumpResourceLoadCallbacks
2877         https://bugs.webkit.org/show_bug.cgi?id=42332
2878
2879         Reviewed by Kenneth Rohde Christiansen.
2880
2881         Provide build for mac.
2882
2883         * WebCore.exp.in: Added __ZNK7WebCore19ResourceRequestBase20firstPartyForCookiesEv.
2884
2885 2012-08-14  Adam Barth  <abarth@webkit.org>
2886
2887         DOMWindow::document() should not reach through Frame
2888         https://bugs.webkit.org/show_bug.cgi?id=27640
2889
2890         Reviewed by Eric Seidel.
2891
2892         Originally, the lifetime of DOMWindow was similar to that of Frame in
2893         that it was reused for each document that was displayed in the Frame.
2894         To fix some tricky security issues, all modern browsers use a "split
2895         window" architecture whereby the DOMWindow is not reused by each
2896         Document in a Frame. Instead a JavaScript "window shell" object
2897         redirects JavaScript references to the active Document's DOMWindow.
2898
2899         When we implemented split windows, we left DOMWindow attached to the
2900         Frame and attempted to keep it in sync with the Document via a lot of
2901         delicate code. One of the main problems with this approach is that
2902         finding the DOMWindow associated with a Document or the Document
2903         associated with a DOMWindow required traversing through the Frame.
2904         Because there is a many-to-one relationship between both Documents and
2905         Frames (as well as DOMWindows and Frames), this traversal is error
2906         prone and not always available (e.g., for inactive documents).
2907
2908         This patch moves the "owning" reference for DOMWindow to Document so
2909         that we can directly traverse from Document to DOMWindow. For
2910         traversing from DOMWindow to Document, each DOMWindow keeps a Document
2911         pointer via a ContextDestructionObserver base class.
2912
2913         The main sublties in this patch are related to situations in which
2914         there isn't precisely a one-to-one relationship between Documents and
2915         DOMWindows. Previously, these situations were handled implicitly by the
2916         "flex and slop" of having separate Document and DOMWindow pointers in
2917         Frame. In this patch, these sublties are made explicit via
2918         Document::takeDOMWindowFrom, which explicitly transfers the DOMWindow
2919         (as well as ASSERTs that all the relevant objects exist in a sensible
2920         constellation).
2921
2922         * WebCore.exp.in:
2923             - These functions are no longer exported because they're inline.
2924         * bindings/js/ScriptController.cpp:
2925         (WebCore::ScriptController::clearWindowShell):
2926         * bindings/js/ScriptController.h:
2927         (ScriptController):
2928             - clearWindowShell now explicitly takes the new DOMWindow that will
2929               be pointed to by the WindowShell. Previously, clearWindowShell
2930               would implicitly create the new DOMWindow by accessing
2931               Frame::domWindow (which used to lazily create the DOMWindow).
2932         * bindings/v8/BindingState.cpp:
2933         (WebCore::currentDocument):
2934         * bindings/v8/BindingState.h:
2935         (WebCore):
2936             - currentDocument provides a directly path from the current
2937               v8::Context to the Document (by way of DOMWindow). Previously,
2938               code transited via the Frame using currentFrame.
2939         * bindings/v8/ScriptController.cpp:
2940         (WebCore::ScriptController::clearWindowShell):
2941         * bindings/v8/ScriptController.h:
2942         (ScriptController):
2943             - Mirror JSC changes to clearWindowShell.
2944         * bindings/v8/V8Utilities.cpp:
2945         (WebCore::getScriptExecutionContext):
2946             - Update getScriptExecutionContext to transit directly from the
2947               DOMWindow to the Document rather than detouring via the Frame.
2948         * dom/ContextDestructionObserver.cpp:
2949         (WebCore::ContextDestructionObserver::ContextDestructionObserver):
2950         (WebCore::ContextDestructionObserver::~ContextDestructionObserver):
2951         (WebCore):
2952         (WebCore::ContextDestructionObserver::observeContext):
2953         * dom/ContextDestructionObserver.h:
2954         (ContextDestructionObserver):
2955             - When we transfer a DOMWindow from one Document to another, we
2956               need to update the Document pointer in the DOMWindow to point to
2957               the new Document. The DOMWindow holds the Document pointer via
2958               ContextDestructionObserver, so this patch teaches
2959               ContextDestructionObserver how to change which
2960               ScriptExecutionContext it is observing. This code mirrors similar
2961               code in FrameDestructionObserver.
2962         * dom/Document.cpp:
2963         (WebCore::Document::~Document):
2964         (WebCore::Document::detach):
2965         (WebCore::Document::createDOMWindow):
2966             - createDOMWindow now explicitly creates the DOMWindow. Previously,
2967               we created the DOMWindow implicitly in Frame::domWindow when it
2968               was first accessed.
2969         (WebCore::Document::takeDOMWindowFrom):
2970             - takeDOMWindowFrom explicitly transfers the DOMWindow from one
2971               Document to another. The main benefit of this function is the
2972               ASSERTs that ensure that the Document, DOMWindow, and Frame all
2973               point to each other the correct configuration.
2974         (WebCore::Document::didUpdateSecurityOrigin):
2975             - We no longer need to keep the SecurityOrigin pointer in DOMWindow
2976               in sync with the Document because DOMWindow no longer has a
2977               SecurityOrigin object.
2978         * dom/Document.h:
2979         (Document):
2980         (WebCore::Document::domWindow):
2981         * history/CachedFrame.cpp:
2982         (WebCore::CachedFrame::CachedFrame):
2983         (WebCore::CachedFrame::destroy):
2984         * history/CachedFrame.h:
2985         (CachedFrameBase):
2986             - Previously, CachedFrame held the Document and the DOMWindow with
2987               separate pointers. Now, the CachedFrame holds the DOMWnidow via
2988               the Document, which makes adding and removing Documents from the
2989               PageCache simpler because we don't need to keep the Frame's
2990               DOMWindow pointer synchronized.
2991         * loader/DocumentWriter.cpp:
2992         (WebCore::DocumentWriter::begin):
2993             - begin now explicitly creates the DOMWindow and transfers
2994               DOMWindow when performing a "secure transition." Previously, both
2995               of these processes were handled implicitly: the DOMWindow was
2996               created implicitly by Frame::domWindow, and the DOMWindow was
2997               reused during navigation by not clearing Frame::m_domWindow.
2998         * loader/FrameLoader.cpp:
2999         (WebCore::FrameLoader::cancelAndClear):
3000         (WebCore::FrameLoader::clear):
3001             - These functions now pass the new Document so that we have access
3002               to the new DOMWindow in clearDOMWindowShell.
3003         (WebCore::FrameLoader::setOpener):
3004             - We no longer need to keep the DOMWindow's SecurityOrigin in sync
3005               with the Document's SecurityOrigin because DOMWindow no longer
3006               has a duplicate SecurityOrigin pointer.
3007         (WebCore::FrameLoader::open):
3008             - We no longer need to keep the Frame::m_domWindow in sync with the
3009               Document because the Document carries its own DOMWindow.
3010         * loader/FrameLoader.h:
3011         (FrameLoader):
3012         * page/DOMWindow.cpp:
3013         (WebCore::DOMWindow::DOMWindow):
3014             - DOMWindow now uses Document as its primary context object. In a
3015               future patch, we should remove the FrameDestructionObserver base
3016               class and instead access the frame via DOMWindow::document().
3017         (WebCore::DOMWindow::didSecureTransitionTo):
3018             - Notify the DOMWindow that it is now associated with a new
3019               Document.
3020         (WebCore::DOMWindow::scriptExecutionContext):
3021         (WebCore::DOMWindow::document):
3022         (WebCore::DOMWindow::securityOrigin):
3023             - These functions now retrieve the Document directly rather than
3024               transiting via the Frame.
3025         * page/DOMWindow.h:
3026         (WebCore::DOMWindow::create):
3027         (DOMWindow):
3028         * page/Frame.cpp:
3029         (WebCore::Frame::setDocument):
3030             - Add more ASSERTs that the Document and its DOMWindow are properly
3031               wired up to this Frame.
3032         (WebCore::Frame::domWindow):
3033             - Rather than lazily creating the DOMWindow, this function now just
3034               accesses the already-created DOMWindow on Document. Eventually,
3035               all callers should retreive the DOMWindow from the Document
3036               directly.
3037         * page/Frame.h:
3038         (WebCore::Frame::existingDOMWindow):
3039             - The DOMWindow always exists, so there is no distinction between
3040               domWindow() and existingDOMWindow().
3041         * xml/XMLHttpRequest.cpp:
3042         (WebCore::XMLHttpRequest::open):
3043             - Previously, open would exit early if it was unable to find its
3044               ScriptExecutionContext (e.g., if the ScriptExecutionContext was
3045               inactive). Now we can always locate the ScriptExecutionContext
3046               and so we need to test whether the ScriptExecutionContext is
3047               still attached to the Page before accessing Settings. Tests
3048               verify that the platform-visible behaviors of XMLHttpRequest are
3049               unchanged, even for XMLHttpRequest constructors associated with
3050               inactive Documents.
3051         * xml/XSLTProcessor.cpp:
3052         (WebCore::XSLTProcessor::createDocumentFromSource):
3053             - Make it explicit that XSLT re-uses the DOMWindow from the source
3054               Document in the transformed Document.
3055
3056 2012-08-14  Levi Weintraub  <leviw@chromium.org>
3057
3058         Accumulating LayoutUnits with floats for determining block preferred width can lead to wrapping
3059         https://bugs.webkit.org/show_bug.cgi?id=93513
3060
3061         Reviewed by Eric Seidel.
3062
3063         Sub-pixel values from floats are subject to small losses in precision when accumulated with
3064         floating point values, as we do in RenderBlock. This patch adds a new method to FractionalLayoutUnit --
3065         ceilToFloat -- which guarantees us a floating point value at least as big as our original LayoutUnit
3066         value, and uses it along with ceiledLayoutUnit to avoid underprovisioning RenderBlock's preferred
3067         widths due to lost precision.
3068
3069         Test: fast/sub-pixel/block-preferred-widths-with-sub-pixel-floats.html
3070
3071         * platform/FractionalLayoutUnit.h:
3072         (WebCore::FractionalLayoutUnit::ceilToFloat): Returns a float value the same or larger than the
3073         FractionalLayoutUnit value.
3074         (FractionalLayoutUnit):
3075         (WebCore::FractionalLayoutUnit::epsilon): Now returns 0 when sub-pixel is disabled.
3076         * rendering/RenderBlock.cpp:
3077         (WebCore::RenderBlock::computeLogicalLocationForFloat): Adding a LayoutUnit::epsilon fudge factor
3078         for fitting floats. This is probably necessary due to precision being lost elsewhere.
3079         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths): Ensure no precision is lost due to conversion
3080         when accumulating our min/max width with floats.
3081
3082 2012-08-14  Jer Noble  <jer.noble@apple.com>
3083
3084         Fullscreen/normal volume sliders don't stay in sync
3085         https://bugs.webkit.org/show_bug.cgi?id=93867
3086
3087         Reviewed by Eric Carlson.
3088
3089         Change the full screen volume slider, if present, when the media element's volume
3090         changes.
3091
3092         Test: media/video-controls-fullscreen-volume.html
3093
3094         * html/shadow/MediaControlRootElement.cpp:
3095         (WebCore::MediaControlRootElement::changedVolume):
3096
3097 2012-08-14  Olivier Blin  <olivier.blin@softathome.com>
3098
3099         Remove unused yyparse method in CSSParser
3100         https://bugs.webkit.org/show_bug.cgi?id=93986
3101
3102         Reviewed by Darin Adler.
3103
3104         This method is unused and not even declared.
3105
3106         No new tests, it just removes unused code.
3107
3108         * css/CSSParser.h:
3109
3110 2012-08-14  Zan Dobersek  <zandobersek@gmail.com>
3111
3112         [Gtk] Include all files guarded by ENABLE_* guards in Source/WebCore/GNUmakefile.list.am into the build
3113         https://bugs.webkit.org/show_bug.cgi?id=90696
3114
3115         Reviewed by Philippe Normand.
3116
3117         Include all files in the Autotools build that are currently guarded by ENABLE_* guards in
3118         the WebCore GNUmakefile.list.am, regardless of the feature being enabled. Compilation should
3119         rely on proper use of guards inside source files and preprocessor work to keep the disabled
3120         features out.
3121
3122         The only exception left is the ENABLE_WEBGL guard that includes the ANGLE into compilation
3123         only if WebGL feature is enabled.
3124
3125         No new tests - no new functionality.
3126
3127         * GNUmakefile.am:
3128         * GNUmakefile.list.am:
3129         * bindings/gobject/GNUmakefile.am: Add StorageInfo to the DOM bindings, despite
3130         the feature being currently disabled.
3131
3132 2012-08-14  Gregg Tavares  <gman@google.com>
3133
3134         Plumb through EXT_debug_marker entry points
3135         https://bugs.webkit.org/show_bug.cgi?id=93860
3136
3137         Reviewed by Kenneth Russell.
3138
3139         insertEventMarkerEXT, pushGroupMarkerEXT, popGroupMarkerEXT,
3140         are all entry points exposed by the OpenGL ES
3141         EXT_debug_marker extension
3142
3143         No new tests as no new functionality exposed to web.
3144
3145         * html/canvas/WebGLRenderingContext.cpp:
3146         (WebCore):
3147         (WebCore::WebGLRenderingContext::create):
3148         * platform/chromium/support/Extensions3DChromium.cpp:
3149         (WebCore::Extensions3DChromium::insertEventMarkerEXT):
3150         (WebCore):
3151         (WebCore::Extensions3DChromium::pushGroupMarkerEXT):
3152         (WebCore::Extensions3DChromium::popGroupMarkerEXT):
3153         * platform/graphics/Extensions3D.h:
3154         (Extensions3D):
3155         * platform/graphics/chromium/Extensions3DChromium.h:
3156         (Extensions3DChromium):
3157         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
3158         (WebCore::Extensions3DOpenGL::insertEventMarkerEXT):
3159         (WebCore):
3160         (WebCore::Extensions3DOpenGL::pushGroupMarkerEXT):
3161         (WebCore::Extensions3DOpenGL::popGroupMarkerEXT):
3162         * platform/graphics/opengl/Extensions3DOpenGL.h:
3163         (Extensions3DOpenGL):
3164         * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
3165         (WebCore::Extensions3DOpenGLES::insertEventMarkerEXT):
3166         (WebCore):
3167         (WebCore::Extensions3DOpenGLES::pushGroupMarkerEXT):
3168         (WebCore::Extensions3DOpenGLES::popGroupMarkerEXT):
3169         * platform/graphics/opengl/Extensions3DOpenGLES.h:
3170         (Extensions3DOpenGLES):
3171
3172 2012-06-24  Robert Hogan  <robert@webkit.org>
3173
3174         CSS 2.1 failure: Word-spacing affects each space and non-breaking space
3175         https://bugs.webkit.org/show_bug.cgi?id=89826
3176
3177         Reviewed by Eric Seidel.
3178
3179         Add word spacing to consecutive spaces in a run per http://www.w3.org/TR/CSS21/text.html#spacing-props.
3180
3181         Test: fast/css/word-spacing-characters.html
3182               fast/css/word-spacing-characters-complex-text.html
3183               fast/css/word-spacing-characters-linebreak.html
3184               css2.1/20110323/word-spacing-characters-002.htm
3185               css2.1/20110323/word-spacing-characters-003.htm
3186               css2.1/20110323/word-spacing-remove-space-001.htm
3187               css2.1/20110323/word-spacing-remove-space-002.htm
3188               css2.1/20110323/word-spacing-remove-space-003.htm
3189               css2.1/20110323/word-spacing-remove-space-004.htm
3190               css2.1/20110323/word-spacing-remove-space-005.htm
3191               css2.1/20110323/word-spacing-remove-space-006.htm
3192               css2.1/20110323/c541-word-sp-001.htm
3193               css2.1/20110323/c541-word-sp-000.htm
3194
3195         * platform/graphics/WidthIterator.cpp:
3196         (WebCore::WidthIterator::advance): All spaces (ordinary space or &nbsp;) get word-spacing added, even
3197           if they are consecutive.
3198         * platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
3199         (WebCore::HarfBuzzShaperBase::isWordEnd): ditto, but for the complex text case on Chromium. Had to use
3200           m_run rather than m_normalizedBuffer here as m_normalizedBuffer turns tabs into spaces! Unlike the simple
3201           text path, '\n' gets word-spacing - I observed this from fast/text/atsui-spacing-features.html but can't
3202           find it specified anywhere.
3203         * platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
3204         (WebCore::HarfBuzzShaperBase::isCodepointSpace):
3205         * rendering/RenderBlockLineLayout.cpp:
3206         (WebCore::RenderBlock::LineBreaker::nextLineBreak): Tested by word-spacing-linebreak.html
3207
3208 2012-08-14  Antoine Labour  <piman@chromium.org>
3209
3210         [chromium] race between CCLayerTreeHostImpl::releaseContentsTextures and CCThreadProxy::beginFrameCompleteOnImplThread
3211         https://bugs.webkit.org/show_bug.cgi?id=93684
3212
3213         Reviewed by James Robinson.
3214
3215         This keeps track of whether we're between the beginFrame post and the
3216         commit when releaseContentsTextures comes, and if that is the case, we
3217         prune the texture uploads, keep the "textures purged" flag on and kick a
3218         new commit.
3219
3220         Added CCLayerTreeHostTestEvictTextures test.
3221
3222         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3223         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
3224         (WebCore::CCLayerTreeHostImpl::beginFramePosted):
3225         (WebCore):
3226         (WebCore::CCLayerTreeHostImpl::commitComplete):
3227         (WebCore::CCLayerTreeHostImpl::canDraw):
3228         (WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
3229         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3230         (CCLayerTreeHostImpl):
3231         (WebCore::CCLayerTreeHostImpl::contentsTexturesPurged):
3232         (WebCore::CCLayerTreeHostImpl::contentsTexturesWerePurgedSinceLastBeginFrame):
3233         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3234         (WebCore::CCSingleThreadProxy::stop):
3235         (WebCore::CCSingleThreadProxy::commitAndComposite):
3236         * platform/graphics/chromium/cc/CCTextureUpdateController.h:
3237         (CCTextureUpdateController):
3238         * platform/graphics/chromium/cc/CCTextureUpdateQueue.cpp:
3239         (WebCore::CCTextureUpdateQueue::clearUploads):
3240         (WebCore):
3241         * platform/graphics/chromium/cc/CCTextureUpdateQueue.h:
3242         (CCTextureUpdateQueue):
3243         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3244         (WebCore::CCThreadProxy::scheduledActionBeginFrame):
3245         (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
3246         (WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):
3247
3248 2012-08-14  Yong Li  <yoli@rim.com>
3249
3250         [BlackBerry] Pass URL String's 8-bit buffer directly to platform layer when possible
3251         https://bugs.webkit.org/show_bug.cgi?id=93861
3252
3253         Reviewed by Rob Buis.
3254
3255         PR# 187605.
3256         URL strings and HTTP header strings usually use 8-bit buffers internally. We can
3257         just pass the buffers to platform calls when only Latin1 strings are needed.
3258
3259         * platform/blackberry/ReadOnlyLatin1String.h: Added.
3260         (WebCore):
3261         (ReadOnlyLatin1String): A utility class that uses either WTF::CString or WTF::String's 8-bit buffer.
3262         (WebCore::ReadOnlyLatin1String::ReadOnlyLatin1String): Can only be constructed with WTF::String for now.
3263         (WebCore::ReadOnlyLatin1String::data):
3264         (WebCore::ReadOnlyLatin1String::length):
3265         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
3266         (WebCore::ResourceRequest::initializePlatformRequest):
3267         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
3268         (WebCore::SocketStreamHandle::SocketStreamHandle):
3269
3270 2012-08-14  Christophe Dumez  <christophe.dumez@intel.com>
3271
3272         Fix  LayoutTests/canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html
3273         https://bugs.webkit.org/show_bug.cgi?id=92974
3274
3275         Reviewed by Kenneth Rohde Christiansen.
3276
3277         Replace space characters by U+0020 SPACE characters in
3278         CanvasRenderingContext2D::drawTextInternal() in order to
3279         comply with the HTML Canvas 2D Context specification:
3280         - http://www.w3.org/TR/2dcontext/#drawing-text-to-the-canvas
3281
3282         No new tests, already tested by canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html.
3283
3284         * html/canvas/CanvasRenderingContext2D.cpp:
3285         (WebCore::replaceCharacterInString):
3286         (WebCore):
3287         (WebCore::CanvasRenderingContext2D::drawTextInternal):
3288
3289 2012-08-14  George Staikos  <staikos@webkit.org>
3290
3291         [BlackBerry] Avoid assertion failure in App Cache.
3292         https://bugs.webkit.org/show_bug.cgi?id=93926
3293
3294         Reviewed by Rob Buis.
3295
3296         Short-circuit data url decoding if we know it's not a data URL to
3297         avoid an assertion failure in debug mode.  No functional change.
3298
3299         No new tests since this is just a debug mode assertion failure.
3300
3301         * loader/appcache/ApplicationCacheGroup.cpp:
3302         (WebCore::ApplicationCacheGroup::createResourceHandle):
3303
3304 2012-08-14  Thiago Marcos P. Santos  <thiago.santos@intel.com>
3305
3306         [EFL] Do not warn when the default theme is not found
3307         https://bugs.webkit.org/show_bug.cgi?id=93968
3308
3309         Reviewed by Kenneth Rohde Christiansen.
3310
3311         Even if you are using a custom theme, we always try to load first the
3312         theme at the default path (that may or may not exist). In the case it
3313         doesn't exist and you have a custom theme, we were always getting a
3314         misleading error message.
3315
3316         * platform/efl/RenderThemeEfl.cpp:
3317         (WebCore::RenderThemeEfl::createEdje):
3318
3319 2012-08-14  Joshua Bell  <jsbell@chromium.org>
3320
3321         IndexedDB: Pass cursor continue results back in callback
3322         https://bugs.webkit.org/show_bug.cgi?id=92278
3323
3324         Reviewed by Tony Chang.
3325
3326         Supply the updated cursor key/primaryKey/value in the success callback,
3327         rather than forcing the callee to make three calls into the back end to
3328         fetch them. Callbacks onSuccess(cursor) and onSuccessWithContinuation()
3329         are given the three new payload parameters (and the latter is renamed.)
3330
3331         No new tests - no behavioral changes.
3332
3333         * Modules/indexeddb/IDBCallbacks.h: Updated callbacks.
3334         (IDBCallbacks):
3335         * Modules/indexeddb/IDBCursor.cpp:
3336         (WebCore::IDBCursor::setValueReady): Takes values rather than fetching them.
3337         * Modules/indexeddb/IDBCursor.h:
3338         (IDBCursor):
3339         * Modules/indexeddb/IDBCursorBackendImpl.cpp: Delete accessors.
3340         (WebCore::IDBCursorBackendImpl::advanceInternal): Pass along updated cursor state.
3341         (WebCore::IDBCursorBackendImpl::continueFunctionInternal): Ditto.
3342         * Modules/indexeddb/IDBCursorBackendImpl.h:
3343         (IDBCursorBackendImpl): Delete accessors from interface...
3344         (WebCore::IDBCursorBackendImpl::key): ...but keep them for use within back-end.
3345         (WebCore::IDBCursorBackendImpl::primaryKey):
3346         (WebCore::IDBCursorBackendImpl::value):
3347         * Modules/indexeddb/IDBCursorBackendInterface.h: Delete accessors.
3348         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
3349         (WebCore::IDBIndexBackendImpl::openCursorInternal): Pass along new cursor state.
3350         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
3351         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal): Ditto.
3352         * Modules/indexeddb/IDBRequest.cpp:
3353         (WebCore::IDBRequest::setResultCursor): Stash updated cursor state until dispatch.
3354         (WebCore::IDBRequest::onSuccess):
3355         (WebCore::IDBRequest::dispatchEvent): Update cursor with new state.
3356         * Modules/indexeddb/IDBRequest.h:
3357         (IDBRequest):
3358         * inspector/InspectorIndexedDBAgent.cpp: Update iteration code to use new callbacks.
3359         (WebCore):
3360
3361 2012-08-14  Arvid Nilsson  <anilsson@rim.com>
3362
3363         [BlackBerry] Get rid of glCopyTexImage2D in Canvas and WebGL code paths
3364         https://bugs.webkit.org/show_bug.cgi?id=93614
3365
3366         Reviewed by Antonio Gomes.
3367
3368         We used to set up resource sharing between the compositing thread
3369         context and the Canvas and WebGL contexts, and use glCopyTexImage2D to
3370         get a copy of the framebuffer to use as front buffer for compositing
3371         purposes.
3372
3373         Now we instead create an EGLImage and blit the Canvas/WebGL output to
3374         it. The compositing thread creates a texture from the EGLImage in order
3375         to composite the output.
3376
3377         Created a new EGLImageLayerWebKitThread base class that handles the
3378         EGLImage and does the blitting. CanvasLayerWebKitThread and
3379         WebGLLayerWebKitThread now inherit from this new base class.
3380
3381         However, we need to be careful to restore state after the blit because
3382         it's done using the Canvas/WebGL context.
3383
3384         The BlackBerry implementation of GraphicsContext3D::prepareTexture()
3385         was changed to no longer call glCopyTexImage, and
3386         GraphicsContext3D::platformLayer() now returns the target texture
3387         directly.
3388
3389         Reviewed internally by Filip Spacek.
3390
3391         PR 188472
3392
3393         No change in behavior, new tests.
3394
3395         * PlatformBlackBerry.cmake:
3396         * platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
3397         (WebCore::CanvasLayerWebKitThread::CanvasLayerWebKitThread):
3398         (WebCore::CanvasLayerWebKitThread::~CanvasLayerWebKitThread):
3399         (WebCore::CanvasLayerWebKitThread::setDevice):
3400         (WebCore::CanvasLayerWebKitThread::makeContextCurrent):
3401         (WebCore::CanvasLayerWebKitThread::textureSize):
3402         (WebCore):
3403         (WebCore::CanvasLayerWebKitThread::textureID):
3404         * platform/graphics/blackberry/CanvasLayerWebKitThread.h:
3405         (CanvasLayerWebKitThread):
3406         * platform/graphics/blackberry/EGLImageLayerCompositingThreadClient.cpp: Added.
3407         (WebCore):
3408         (WebCore::EGLImageLayerCompositingThreadClient::~EGLImageLayerCompositingThreadClient):
3409         (WebCore::EGLImageLayerCompositingThreadClient::uploadTexturesIfNeeded):
3410         (WebCore::EGLImageLayerCompositingThreadClient::drawTextures):
3411         (WebCore::EGLImageLayerCompositingThreadClient::deleteTextures):
3412         (WebCore::EGLImageLayerCompositingThreadClient::bindContentsTexture):