When page scaling is in use position:fixed has incorrect results
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-12-02  Fady Samuel  <fsamuel@chromium.org>
2
3         When page scaling is in use position:fixed has incorrect results
4         https://bugs.webkit.org/show_bug.cgi?id=68617
5
6         Reviewed by Simon Fraser.
7
8         Add the option for position:fixed elements to be fixed to the frame
9         instead of the layout rectangle of the document.
10
11         Tests: fast/repaint/fixed-in-page-scale.html
12                fast/repaint/fixed-right-bottom-in-page-scale.html
13                fast/repaint/fixed-right-in-page-scale.html
14
15         * WebCore.exp.in:
16         * page/FrameView.cpp:
17         (WebCore::FrameView::reset):
18         (WebCore::FrameView::scrollXForFixedPosition):
19         (WebCore::FrameView::scrollYForFixedPosition):
20           If position:fixed elements are relative to the frame, disregard the
21           drag factor.
22         (WebCore::FrameView::setShouldLayoutFixedElementsRelativeToFrame):
23         * page/FrameView.h:
24         (WebCore::FrameView::shouldLayoutFixedElementsRelativeToFrame):
25         * rendering/RenderBox.cpp:
26         (WebCore::RenderBox::shouldLayoutFixedElementRelativeToFrame):
27         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
28         (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
29           If position:fixed elements are relative to the frame, their container
30           is the frame instead of the layout rect of the document. 
31           This allows proper positioning of these elements to the right and
32           bottom.
33         * rendering/RenderBox.h:
34         * testing/Internals.cpp:
35         (WebCore::Internals::setShouldLayoutFixedElementsRelativeToFrame):
36         * testing/Internals.h:
37         * testing/Internals.idl:
38           Allow enabling and disabling the new behavior in layout tests.
39
40 2011-12-02  Benjamin Poulain  <bpoulain@apple.com>
41
42         Build fix for SubresourceLoader when building with Core Foundation
43         https://bugs.webkit.org/show_bug.cgi?id=73709
44
45         Reviewed by David Kilzer.
46
47         The patch r100311 removed SubresourceClient and merged it in SubresourceLoader.
48         Consequently, m_client does not exist anymore and there is no need to do the check
49         before invoking didReceiveData().
50
51         * loader/cf/SubresourceLoaderCF.cpp:
52         (WebCore::SubresourceLoader::didReceiveDataArray):
53
54 2011-12-02  Andreas Kling  <kling@webkit.org>
55
56         StyledElement: Simplify addCSSColor().
57         <http://webkit.org/b/73703>
58
59         Reviewed by Darin Adler.
60
61         The Color(const String&) constructor handles both named and 3/6-digit
62         hex colors, so there's no need to handle those separately here.
63         Also tweaked some comments and minor things.
64
65         * dom/StyledElement.cpp:
66         (WebCore::StyledElement::addCSSColor):
67
68 2011-12-02  Benjamin Poulain  <bpoulain@apple.com>
69
70         Update platform/iphone to platform/ios
71         https://bugs.webkit.org/show_bug.cgi?id=73708
72
73         Reviewed by Darin Adler.
74
75         The platform is now best known as iOS, update the platform layer accordingly.
76
77         * Configurations/WebCore.xcconfig:
78         * WebCore.gypi:
79         * WebCore.xcodeproj/project.pbxproj:
80         * platform/cocoa/KeyEventCocoa.mm:
81         * platform/ios/KeyEventCodesIOS.h: Renamed from Source/WebCore/platform/iphone/KeyEventCodesIPhone.h.
82         * platform/ios/KeyEventIOS.mm: Renamed from Source/WebCore/platform/iphone/KeyEventIPhone.mm.
83         (WebCore::keyIdentifierForKeyEvent):
84         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
85         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
86         (WebCore::PlatformKeyboardEvent::currentCapsLockState):
87         (WebCore::PlatformKeyboardEvent::getCurrentModifierState):
88
89 2011-12-02  Jonathan Backer  <backer@chromium.org>
90
91         [chromium] Eliminate unnecessary state on previous CL
92         https://bugs.webkit.org/show_bug.cgi?id=73661
93
94         Reviewed by Kenneth Russell.
95
96         * platform/graphics/chromium/LayerRendererChromium.cpp:
97         (WebCore::LayerRendererChromium::initialize):
98         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
99         (WebCore::CCLayerTreeHost::initialize):
100         (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
101         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
102         (WebCore::CCSettings::CCSettings):
103         (WebCore::LayerRendererCapabilities::LayerRendererCapabilities):
104
105 2011-12-02  Dan Bernstein  <mitz@apple.com>
106
107         <rdar://problem/10520670> REGRESSION (r91738): didFinishLoad is called before custom fonts have finished loading
108         https://bugs.webkit.org/show_bug.cgi?id=73688
109
110         Reviewed by Darin Adler.
111
112         The problem was that after CSSFontFaceSource::getFontData() had scheduled a 0-delay timer to
113         begin loading the font, but before that timer fired, the subresource loader appeared to have
114         had no resources waiting to be loaded, and therefore didFinishLoad could be called. This change
115         reworks the fix for <http://webkit.org/b/65123> so that while the load is still started on a
116         0-delay timer, the subresource loader’s request count is incremented immediately, preventing
117         it from hitting 0 while the font load is scheduled to begin. The delayed load mechanism is
118         moved from CSSFontFaceSource into CSSFontSelector in order to safely handle the possibility of
119         the latter being decommissioned while waiting for font loading to begin.
120
121         * css/CSSFontFaceSource.cpp:
122         (WebCore::CSSFontFaceSource::CSSFontFaceSource): Removed initializer for m_loadStartTimer.
123         (WebCore::CSSFontFaceSource::~CSSFontFaceSource): Removed stopping of m_loadStartTimer.
124         (WebCore::CSSFontFaceSource::getFontData): Replaced code to schedule loading on a timer with
125         a call to CSSFontSelector::beginLoadingFontSoon.
126         * css/CSSFontFaceSource.h: Removed m_loadStartTimer and m_fontSelector member variables.
127         * css/CSSFontSelector.cpp:
128         (WebCore::CSSFontSelector::CSSFontSelector): Added initialized for m_beginLoadingTimer.
129         (WebCore::CSSFontSelector::~CSSFontSelector): Added call to clearDocument(), to deal with
130         anything remaining in m_fontsToBeginLoading at this time.
131         (WebCore::CSSFontSelector::clearDocument): Now stops m_beginLoadingTimer and balances
132         incrementRequestCount() calls for anything remaining in m_fontsToBeginLoading.
133         (WebCore::CSSFontSelector::beginLoadingFontSoon): Added. Schedules the actual call to
134         CachedFont::beginLoadingIfNeeded on a 0-delay timer, and meanwhile increments the request count
135         on the CachedResourceLoader, which ensures that didFinishLoad will not be called while waiting
136         for the timer to fire.
137         (WebCore::CSSFontSelector::beginLoadTimerFired): Added. Actually calls
138         CachedFont::beginLoadIfNeeded and balances the incrementRequestCount() made when the timer was
139         scheduled.
140         * css/CSSFontSelector.h:
141
142 2011-12-02  David Tseng  <dtseng@google.com>
143
144         Send an AXCheckedStateChanged notification when the aria-checked attribute changes.
145         https://bugs.webkit.org/show_bug.cgi?id=72754
146
147         Reviewed by Chris Fleizach.
148
149         Test: accessibility/aria-checkbox-sends-notification.html
150
151         * accessibility/AXObjectCache.cpp:
152         (WebCore::AXObjectCache::checkedStateChanged):
153         * accessibility/AXObjectCache.h:
154         * dom/Element.cpp:
155         (WebCore::Element::updateAfterAttributeChanged):
156         * html/HTMLInputElement.cpp:
157         (WebCore::HTMLInputElement::setChecked):
158
159 2011-12-02  Grace Kloba  <klobag@chromium.org>
160
161         [chromium] Recycle tile-sized textures during commit to prevent reallocations
162         https://bugs.webkit.org/show_bug.cgi?id=70645
163
164         Reviewed by James Robinson.
165
166         Currently texture request is capped by the high limit while we reclaim the
167         textures in each commit. This triggers new tiles always allocated when scrolling.
168         The proposal is to recycle the texture during request if the total used memory
169         is about to exceed the reclaim limit.
170
171         * platform/graphics/chromium/ManagedTexture.cpp:
172         (WebCore::ManagedTexture::reserve):
173         * platform/graphics/chromium/TextureManager.cpp:
174         (WebCore::TextureManager::setMemoryLimitBytes):
175         (WebCore::TextureManager::replaceTexture):
176         (WebCore::TextureManager::requestTexture):
177         * platform/graphics/chromium/TextureManager.h:
178
179 2011-12-02  Kent Tamura  <tkent@chromium.org>
180
181         [Chromium] Show placeholder even if the element is focused
182         https://bugs.webkit.org/show_bug.cgi?id=73629
183
184         Reviewed by Hajime Morita.
185
186         No new tests. Need to update some existing placeholder tests.
187
188         * rendering/RenderThemeChromiumMac.h: Add shouldShowPlaceholderWhenFocused().
189         * rendering/RenderThemeChromiumMac.mm:
190         (WebCore::RenderThemeChromiumMac::shouldShowPlaceholderWhenFocused):
191         Returns true.
192         * rendering/RenderThemeChromiumSkia.cpp:
193         (WebCore::RenderThemeChromiumSkia::shouldShowPlaceholderWhenFocused): ditto.
194         * rendering/RenderThemeChromiumSkia.h: Add shouldShowPlaceholderWhenFocused().
195
196 2011-12-02  Kent Tamura  <tkent@chromium.org>
197
198         [Lion][Windows] Both of placeholder and input text are shown in <input type=number>
199         https://bugs.webkit.org/show_bug.cgi?id=73615
200
201         Reviewed by Joseph Pecoraro.
202
203         Placeholder visibility was checked by HTMLInputElement::value
204         emptiness. It should be innerTextValue emptiness because it is
205         possible that a number field has empty HTMLInputElement::value and
206         non-empty innerTextValue.
207
208         Tests: fast/forms/number/number-placeholder-with-unacceptable-value.html
209
210         * html/HTMLInputElement.cpp:
211         (WebCore::HTMLInputElement::updateInnerTextValue):
212         We should update placeholder visiblity when the innerTextValue is updated.
213         (WebCore::HTMLInputElement::subtreeHasChanged): ditto.
214         (WebCore::HTMLInputElement::setSuggestedValue):
215         We don't need to call updatePlaceholderVisibility() because updateInnerTextValue() calls it.
216         (WebCore::HTMLInputElement::setValueFromRenderer):
217         We don't need to call updatePlaceholderVisibility() because subtreeHasChanged() calls it.
218         * html/HTMLInputElement.h: Checks innerTextValue emptiness.
219         * html/TextFieldInputType.cpp:
220         (WebCore::TextFieldInputType::setValue):
221         We don't need to call updatePlaceholderVisibility() because updateInnerTextValue() calls it.
222
223 2011-12-01  Alok Priyadarshi  <alokp@chromium.org>
224
225         [chromium] CCLayerQuad does not return FloatQuad in correct order
226         https://bugs.webkit.org/show_bug.cgi?id=73247
227
228         Reviewed by James Robinson.
229
230         Returned the FloatQuad coordinates in correct order.
231         
232         Covered by new unit tests in CCLayerQuadTest.cpp.
233
234         * platform/graphics/chromium/cc/CCLayerQuad.cpp:
235         (WebCore::CCLayerQuad::floatQuad):
236
237 2011-12-02  Sheriff Bot  <webkit.review.bot@gmail.com>
238
239         Unreviewed, rolling out r101833.
240         http://trac.webkit.org/changeset/101833
241         https://bugs.webkit.org/show_bug.cgi?id=73678
242
243         test_expectations file invalid: run Tools/Scripts/new-run-
244         webkit-tests --lint-test-files (Requested by scheib on
245         #webkit).
246
247         * platform/graphics/chromium/cc/CCLayerQuad.cpp:
248         (WebCore::CCLayerQuad::floatQuad):
249
250 2011-12-02  Alok Priyadarshi  <alokp@chromium.org>
251
252         [chromium] CCLayerQuad does not return FloatQuad in correct orientation
253         https://bugs.webkit.org/show_bug.cgi?id=73247
254
255         Reviewed by James Robinson.
256
257         Returned the FloatQuad coordinates in correct order.
258         
259         Covered by new unit tests in CCLayerQuadTest.cpp.
260
261         * platform/graphics/chromium/cc/CCLayerQuad.cpp:
262         (WebCore::CCLayerQuad::floatQuad):
263
264 2011-12-01  Dmitry Lomov  <dslomov@google.com>
265
266         https://bugs.webkit.org/show_bug.cgi?id=73589
267         [V8][Chromium] Adjust postMessage to the latest "implementation-ready" spec.
268         - postMessage should support transfer of MessagePorts
269         - the order of arguments to Window::postMessage and Window::webkitPostMessage should be (msg, targetOrigin [, transfer])
270
271         Reviewed by David Levin.
272
273         * bindings/v8/custom/V8DOMWindowCustom.cpp:
274         (WebCore::handlePostMessageCallback):
275         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
276         (WebCore::handlePostMessageCallback):
277         * bindings/v8/custom/V8MessagePortCustom.cpp:
278         (WebCore::handlePostMessageCallback):
279         * bindings/v8/custom/V8WorkerCustom.cpp:
280         (WebCore::handlePostMessageCallback):
281
282 2011-12-02  Enrica Casucci  <enrica@apple.com>
283
284         https://bugs.webkit.org/show_bug.cgi?id=73497
285         This is a followup to the patch submitted for the bug above.
286         Tha patch was landed in r101575 and I missed to make one of the changes
287         suggested by the reviewer that had pointed out that the code was still
288         making use of the deprecatedNode method.
289
290         Unreviewed.
291
292         * editing/DeleteSelectionCommand.cpp:
293         (WebCore::DeleteSelectionCommand::removeRedundantBlocks): Changed deprecatedNode to containerNode.
294
295 2011-12-02  Tom Sepez  <tsepez@chromium.org>
296
297         Content-security-policy script-src not enforced on workers.
298         https://bugs.webkit.org/show_bug.cgi?id=73240
299
300         Reviewed by Adam Barth.
301
302         Add a CSP check in AbstractWorker.cpp as part of resolving URL.
303         
304         Test: http/tests/security/contentSecurityPolicy/worker-script-src.html
305
306         * workers/AbstractWorker.cpp:
307         (WebCore::AbstractWorker::resolveURL):
308
309 2011-12-02  Daniel Cheng  <dcheng@chromium.org>
310
311         [chromium] Add plumbing for supporting custom MIME types in DataTransfer.
312         https://bugs.webkit.org/show_bug.cgi?id=73594
313
314         Reviewed by David Levin.
315
316         Tests: editing/pasteboard/clipboard-customData.html
317                fast/events/drag-customData.html
318
319         * platform/chromium/ChromiumDataObject.cpp:
320         (WebCore::ChromiumDataObject::types):
321         (WebCore::ChromiumDataObject::getData):
322         (WebCore::ChromiumDataObject::setData):
323         * platform/chromium/ChromiumDataObject.h:
324         (WebCore::ChromiumDataObject::customData):
325         * platform/chromium/PlatformSupport.h:
326
327 2011-12-02  Darin Adler  <darin@apple.com>
328
329         [Mac] Form stream data structures still not threadsafe
330         https://bugs.webkit.org/show_bug.cgi?id=73674
331
332         Reviewed by Anders Carlsson.
333
334         * platform/network/mac/FormDataStreamMac.mm:
335         (WebCore::streamFieldsMapMutex): Added. 
336         (WebCore::associateStreamWithResourceHandle): Use streamFieldsMapMutex.
337         (WebCore::formCreate): Ditto.
338         (WebCore::formFinalize): Ditto.
339         (WebCore::httpBodyFromStream): Ditto.
340
341 2011-12-02  Joshua Bell  <jsbell@chromium.org>
342
343         IndexedDB: Rename "multientry" to "multiEntry" per spec change
344         https://bugs.webkit.org/show_bug.cgi?id=73578
345
346         Reviewed by Darin Fisher.
347
348         * storage/IDBIndex.h:
349         (WebCore::IDBIndex::multiEntry):
350         * storage/IDBIndex.idl:
351         * storage/IDBIndexBackendImpl.cpp:
352         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
353         * storage/IDBIndexBackendImpl.h:
354         (WebCore::IDBIndexBackendImpl::create):
355         (WebCore::IDBIndexBackendImpl::multiEntry):
356         * storage/IDBIndexBackendInterface.h:
357         * storage/IDBLevelDBBackingStore.cpp:
358         (WebCore::IDBLevelDBBackingStore::getIndexes):
359         (WebCore::IDBLevelDBBackingStore::createIndex):
360         * storage/IDBLevelDBCoding.cpp:
361         * storage/IDBObjectStore.cpp:
362         (WebCore::IDBObjectStore::createIndex):
363         * storage/IDBObjectStoreBackendImpl.cpp:
364         (WebCore::IDBObjectStoreBackendImpl::putInternal):
365         (WebCore::IDBObjectStoreBackendImpl::createIndex):
366         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
367         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
368         * storage/IDBObjectStoreBackendImpl.h:
369         * storage/IDBObjectStoreBackendInterface.h:
370
371 2011-12-02  Sheriff Bot  <webkit.review.bot@gmail.com>
372
373         Unreviewed, rolling out r101805.
374         http://trac.webkit.org/changeset/101805
375         https://bugs.webkit.org/show_bug.cgi?id=73670
376
377         Many canvas tests started failing due to the isEmpty change
378         (Requested by darin on #webkit).
379
380         * platform/graphics/cg/PathCG.cpp:
381         (WebCore::Path::boundingRect):
382         (WebCore::Path::fastBoundingRect):
383         (WebCore::Path::isEmpty):
384
385 2011-12-01  Darin Adler  <darin@apple.com>
386
387         [Mac] Reference count threading violation in FormDataStreamMac.mm
388         https://bugs.webkit.org/show_bug.cgi?id=73627
389
390         Reviewed by Sam Weinig.
391
392         Shows up as a crash during existing layout test runs so no new tests are required.
393
394         * platform/network/mac/FormDataStreamMac.mm:
395         (WebCore::streamFieldsMap): Replaced getStreamFormDataMap with this.
396         Use an NSMapTable instead of a HashMap because we need to remove items from this
397         on a non-main thread.
398         (WebCore::associateStreamWithResourceHandle): Use NSMapGet instead of
399         HashMap::contains here.
400         (WebCore::formCreate): FormStreamFields now stores a RefPtr to the form data.
401         Added the code to fill that in. Did it in a more modern way to avoid the leakRef
402         and adoptRef that were used before. Replaced the code that set up the stream
403         form data map entry with code that sets an entry in the streamFieldsMap.
404         (WebCore::formFinishFinalizationOnMainThread): Added. Contains the work of
405         finalization that must be done on the main thread, specifically, destroying the
406         fields structure that contains objects with RefPtr in them. We can't touch these
407         reference counts on non-main threads.
408         (WebCore::formFinalize): Changed this to use NSMapRemove on the streamFieldsMap.
409         Added a callOnMainThread to finish the finalization.
410         (WebCore::setHTTPBody): Removed the leakRef, no longer needed, that used to be
411         balanced by an adoptRef in formCreate.
412         (WebCore::httpBodyFromStream): Changed to use NSMapGet.
413
414 2011-12-02  Antti Koivisto  <antti@apple.com>
415
416         https://bugs.webkit.org/show_bug.cgi?id=73520
417         REGRESSION(r101524): Article titles invisible until hover on blaze.com
418
419         Reviewed by Darin Adler.
420         
421         We need to invalidate the matched declaration cache when new web fonts are loaded.
422         Fonts in the cached RenderStyles may not be valid anymore.
423         
424         Also renamed m_matchStyleDeclarationCache -> m_matchedStyleDeclarationCache.
425         
426         Test reduction by the Reduction Fairy (aka kling).
427
428         Test: fast/css/font-face-cache-bug.html
429
430         * css/CSSFontSelector.cpp:
431         (WebCore::CSSFontSelector::dispatchInvalidationCallbacks):
432         * css/CSSStyleSelector.cpp:
433         (WebCore::CSSStyleSelector::findFromMatchedDeclarationCache):
434         (WebCore::CSSStyleSelector::addToMatchedDeclarationCache):
435         (WebCore::CSSStyleSelector::invalidateMatchedDeclarationCache):
436         * css/CSSStyleSelector.h:
437
438 2011-11-02  Jer Noble  <jer.noble@apple.com>
439
440         MediaControls should use MediaController if present.
441         https://bugs.webkit.org/show_bug.cgi?id=71410
442
443         Reviewed by Eric Carlson.
444
445         No new tests; covered by existing tests.
446
447         Add support for individual media controls to control the MediaController of their associated
448         HTMLMediaElement, if present.
449
450         The video spec requires that UA provided media controls be implemented in terms of their 
451         HTMLMediaElement's MediaController, if present.  So for each of the media controls, modify 
452         their constructor to take a Document* instead of an HTMLMediaElement, and add an setter
453         taking a MediaControllerInterface.
454
455         Now that MediaControls have an abstract interface instead of an HTMLMediaElement, use toParentMediaElement
456         to find the controllingVideoElement.
457         * accessibility/AccessibilityMediaControls.cpp:
458         (WebCore::AccessibilityMediaControlsContainer::controllingVideoElement):
459
460         Pass the MediaController or the HTMLMediaElement when setting up the elements controls.
461         * html/HTMLMediaElement.cpp:
462         (WebCore::HTMLMediaElement::createMediaControls):
463         (WebCore::HTMLMediaElement::setMediaController):
464
465         The following functions have only constructor changes:
466         * html/shadow/MediaControlElements.cpp:
467         (WebCore::MediaControlElement::MediaControlElement):
468         (WebCore::MediaControlPanelElement::MediaControlPanelElement):
469         (WebCore::MediaControlPanelElement::create):
470         (WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement):
471         (WebCore::MediaControlTimelineContainerElement::create):
472         (WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement):
473         (WebCore::MediaControlVolumeSliderContainerElement::create):
474         (WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement):
475         (WebCore::MediaControlStatusDisplayElement::create):
476         (WebCore::MediaControlInputElement::MediaControlInputElement):
477         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement):
478         (WebCore::MediaControlMuteButtonElement::defaultEventHandler):
479         (WebCore::MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement):
480         (WebCore::MediaControlPanelMuteButtonElement::create):
481         (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement):
482         (WebCore::MediaControlVolumeSliderMuteButtonElement::create):
483         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
484         (WebCore::MediaControlPlayButtonElement::create):
485         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement):
486         (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement):
487         (WebCore::MediaControlSeekForwardButtonElement::create):
488         (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement):
489         (WebCore::MediaControlSeekBackButtonElement::create):
490         (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement):
491         (WebCore::MediaControlRewindButtonElement::create):
492         (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement):
493         (WebCore::MediaControlReturnToRealtimeButtonElement::create):
494         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
495         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
496         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
497         (WebCore::MediaControlTimelineElement::create):
498         (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement):
499         (WebCore::MediaControlVolumeSliderElement::create):
500         (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
501         (WebCore::MediaControlFullscreenVolumeSliderElement::MediaControlFullscreenVolumeSliderElement):
502         (WebCore::MediaControlFullscreenVolumeSliderElement::create):
503         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
504         (WebCore::MediaControlFullscreenButtonElement::create):
505         (WebCore::MediaControlFullscreenVolumeMinButtonElement::MediaControlFullscreenVolumeMinButtonElement):
506         (WebCore::MediaControlFullscreenVolumeMinButtonElement::create):
507         (WebCore::MediaControlFullscreenVolumeMaxButtonElement::MediaControlFullscreenVolumeMaxButtonElement):
508         (WebCore::MediaControlFullscreenVolumeMaxButtonElement::create):
509         (WebCore::MediaControlTimeDisplayElement::MediaControlTimeDisplayElement):
510         (WebCore::MediaControlTimeRemainingDisplayElement::create):
511         (WebCore::MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement):
512         (WebCore::MediaControlCurrentTimeDisplayElement::create):
513         (WebCore::MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement):
514         * html/shadow/MediaControlRootElement.cpp:
515         (WebCore::MediaControlRootElement::MediaControlRootElement):
516         (WebCore::MediaControls::create):
517         (WebCore::MediaControlRootElement::create):
518         * html/shadow/MediaControlRootElement.h:
519         * html/shadow/MediaControls.cpp:
520         (WebCore::MediaControls::MediaControls):
521         * html/shadow/MediaControls.h:
522
523         The following functions now call MediaControllerInterface instead of HTMLMediaElement directly:
524         * html/shadow/MediaControlElements.h:
525         (WebCore::MediaControlStatusDisplayElement::update):
526         (WebCore::MediaControlMuteButtonElement::updateDisplayType):
527         (WebCore::MediaControlPlayButtonElement::defaultEventHandler):
528         (WebCore::MediaControlPlayButtonElement::updateDisplayType):
529         (WebCore::MediaControlSeekButtonElement::startTimer):
530         (WebCore::MediaControlSeekButtonElement::stopTimer):
531         (WebCore::MediaControlSeekButtonElement::nextRate):
532         (WebCore::MediaControlSeekButtonElement::seekTimerFired):
533         (WebCore::MediaControlRewindButtonElement::defaultEventHandler):
534         (WebCore::MediaControlReturnToRealtimeButtonElement::defaultEventHandler):
535         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
536         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
537         (WebCore::MediaControlTimelineElement::defaultEventHandler):
538         (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
539         (WebCore::MediaControlFullscreenVolumeMinButtonElement::defaultEventHandler):
540         (WebCore::MediaControlFullscreenVolumeMaxButtonElement::defaultEventHandler):
541         * html/shadow/MediaControlRootElement.cpp:
542         (WebCore::MediaControlRootElement::reset):
543         (WebCore::MediaControlRootElement::playbackStarted):
544         (WebCore::MediaControlRootElement::playbackProgressed):
545         (WebCore::MediaControlRootElement::playbackStopped):
546         (WebCore::MediaControlRootElement::updateTimeDisplay):
547         (WebCore::MediaControlRootElement::loadedMetadata):
548         (WebCore::MediaControlRootElement::changedVolume):
549         (WebCore::MediaControlRootElement::enteredFullscreen):
550         (WebCore::MediaControlRootElement::showVolumeSlider):
551         (WebCore::MediaControlRootElement::defaultEventHandler):
552         (WebCore::MediaControlRootElement::startHideFullscreenControlsTimer):
553         (WebCore::MediaControlRootElement::hideFullscreenControlsTimerFired):
554         * html/shadow/MediaControlRootElementChromium.cpp:
555         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
556         (WebCore::MediaControls::create):
557         (WebCore::MediaControlRootElementChromium::create):
558         (WebCore::MediaControlRootElementChromium::reset):
559         (WebCore::MediaControlRootElementChromium::playbackStarted):
560         (WebCore::MediaControlRootElementChromium::playbackProgressed):
561         (WebCore::MediaControlRootElementChromium::playbackStopped):
562         (WebCore::MediaControlRootElementChromium::updateTimeDisplay):
563         (WebCore::MediaControlRootElementChromium::defaultEventHandler):
564         (WebCore::MediaControlRootElementChromium::changedVolume):
565         (WebCore::MediaControlRootElementChromium::showVolumeSlider):
566         * html/shadow/MediaControlRootElementChromium.h:
567
568         The following functions set the current MediaControllerInterface.
569         * html/shadow/MediaControlRootElement.cpp:
570         (WebCore::MediaControlRootElement::setMediaController):
571         * html/shadow/MediaControlElements.h:
572         (WebCore::MediaControlElement::setMediaController):
573         (WebCore::MediaControlElement::mediaController):
574         (WebCore::MediaControlInputElement::setMediaController):
575         (WebCore::MediaControlInputElement::mediaController):
576         * html/shadow/MediaControlRootElementChromium.cpp:
577         (WebCore::MediaControlRootElementChromium::setMediaController):
578
579 2011-12-02  Stephen Chenney  <schenney@chromium.org>
580
581         REGRESSION (r91125): Polyline tool in google docs is broken
582         https://bugs.webkit.org/show_bug.cgi?id=65796
583
584         Reviewed by Darin Adler.
585
586         Work around a bug in CoreGraphics, that caused incorrect bounds for paths
587         consisting only of move-to elements. This causes problems in SVG, when the enormous
588         bounds prevented the drawing of things behind.
589
590         Tests: svg/custom/path-moveto-only-rendering.svg
591                svg/custom/subpaths-moveto-only-rendering.svg
592
593         * platform/graphics/cg/PathCG.cpp:
594         (WebCore::PathIsEmptyOrSingleMoveTester::PathIsEmptyOrSingleMoveTester): Class to
595         test for isEmpty accoridng ot the same rules as other platforms.
596         (WebCore::PathIsEmptyOrSingleMoveTester::isEmpty): Query the result
597         (WebCore::PathIsEmptyOrSingleMoveTester::testPathElement): Path iterator method
598         (WebCore::PathHasOnlyMoveToTester::PathHasOnlyMoveToTester): Class to test whether a
599         path contains only move-to elements, and hence should have null bounds.
600         (WebCore::PathHasOnlyMoveToTester::hasOnlyMoveTo): Query the result
601         (WebCore::PathHasOnlyMoveToTester::testPathElement): Path iterator method.
602         (WebCore::Path::boundingRect): Modified to check for move-to only paths
603         (WebCore::Path::fastBoundingRect): Modified to check for move-to only paths
604         (WebCore::Path::isEmpty): Now uses the method that matches other platforms.
605
606 2011-12-02  Sheriff Bot  <webkit.review.bot@gmail.com>
607
608         Unreviewed, rolling out r101794.
609         http://trac.webkit.org/changeset/101794
610         https://bugs.webkit.org/show_bug.cgi?id=73656
611
612         Broke win build (Requested by vsevik on #webkit).
613
614         * bindings/js/ScriptCallStackFactory.cpp:
615         * bindings/js/ScriptCallStackFactory.h:
616         * bindings/scripts/CodeGeneratorJS.pm:
617         (GenerateParametersCheck):
618         * bindings/scripts/CodeGeneratorV8.pm:
619         (GenerateFunctionCallback):
620         * bindings/scripts/test/JS/JSTestObj.cpp:
621         (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
622         * bindings/scripts/test/V8/V8TestObj.cpp:
623         (WebCore::TestObjInternal::customArgsAndExceptionCallback):
624         * bindings/v8/ScriptCallStackFactory.cpp:
625         * bindings/v8/ScriptCallStackFactory.h:
626         * inspector/InspectorInstrumentation.cpp:
627         * inspector/InspectorInstrumentation.h:
628         * inspector/WorkerInspectorController.h:
629         * page/Console.cpp:
630         (WebCore::Console::shouldCaptureFullStackTrace):
631         * page/Console.h:
632
633 2011-12-02  Raphael Kubo da Costa  <kubo@profusion.mobi>
634
635         Unreviewed, revert r101347.
636         https://bugs.webkit.org/show_bug.cgi?id=73580
637
638         It breaks the linking of Tools/ targets due to missing functions.
639
640         * PlatformEfl.cmake:
641         * platform/graphics/GraphicsLayer.cpp:
642         * platform/graphics/GraphicsLayer.h:
643         * platform/graphics/efl/GraphicsLayerEfl.cpp: Added.
644         (WebCore::GraphicsLayer::create):
645         (WebCore::GraphicsLayerEfl::GraphicsLayerEfl):
646         (WebCore::GraphicsLayerEfl::~GraphicsLayerEfl):
647         (WebCore::GraphicsLayerEfl::setNeedsDisplay):
648         (WebCore::GraphicsLayerEfl::setNeedsDisplayInRect):
649         * platform/graphics/efl/GraphicsLayerEfl.h: Added.
650         * platform/graphics/texmap/TextureMapperNode.cpp:
651         (WebCore::solveCubicBezierFunction):
652         (WebCore::solveStepsFunction):
653
654 2011-12-01  Vsevolod Vlasov  <vsevik@chromium.org>
655
656         Web Inspector: Extract default call stack creation and check for front-end from console.
657         https://bugs.webkit.org/show_bug.cgi?id=73566
658
659         Reviewed by Yury Semikhatsky.
660
661         * bindings/js/ScriptCallStackFactory.cpp:
662         (WebCore::createScriptCallStack):
663         * bindings/js/ScriptCallStackFactory.h:
664         * bindings/scripts/CodeGeneratorJS.pm:
665         (GenerateParametersCheck):
666         * bindings/scripts/CodeGeneratorV8.pm:
667         (GenerateFunctionCallback):
668         * bindings/scripts/test/JS/JSTestObj.cpp:
669         (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
670         * bindings/scripts/test/V8/V8TestObj.cpp:
671         (WebCore::TestObjInternal::customArgsAndExceptionCallback):
672         * bindings/v8/ScriptCallStackFactory.cpp:
673         (WebCore::createScriptCallStack):
674         * bindings/v8/ScriptCallStackFactory.h:
675         * inspector/InspectorInstrumentation.cpp:
676         (WebCore::InspectorInstrumentation::hasFrontendForScriptContext):
677         * inspector/InspectorInstrumentation.h:
678         (WebCore::InspectorInstrumentation::hasFrontendForScriptContext):
679         * inspector/WorkerInspectorController.h:
680         (WebCore::WorkerInspectorController::hasFrontend):
681         * page/Console.cpp:
682         * page/Console.h:
683
684 2011-12-02  Gavin Peters  <gavinp@chromium.org>
685
686         Remove instrumentation tracking a fixed bug
687         https://bugs.webkit.org/show_bug.cgi?id=73471
688
689         The underlying bug is fixed (bug 72068), and this instrumentation was intrusive and using
690         memory, plus the conditional compilation made me sad.
691
692         Reviewed by Nate Chapin.
693
694         No new tests.
695
696         * dom/ScriptElement.cpp:
697         (WebCore::ScriptElement::ScriptElement):
698         (WebCore::ScriptElement::requestScript):
699         (WebCore::ScriptElement::stopLoadRequest):
700         (WebCore::ScriptElement::notifyFinished):
701         * dom/ScriptElement.h:
702         * dom/ScriptRunner.cpp:
703         (WebCore::ScriptRunner::queueScriptForExecution):
704
705 2011-12-02  Vsevolod Vlasov  <vsevik@chromium.org>
706
707         Web Inspector: Split view works weirdly in network panel when resizing, showing/hiding main element.
708         https://bugs.webkit.org/show_bug.cgi?id=73650
709
710         Reviewed by Pavel Feldman.
711
712         * inspector/front-end/SplitView.js:
713         (WebInspector.SplitView.prototype._updateResizer):
714         (WebInspector.SplitView.prototype.hideMainElement):
715         (WebInspector.SplitView.prototype.showMainElement):
716         (WebInspector.SplitView.prototype.onResize):
717         (WebInspector.SplitView.prototype._restoreSidebarWidth):
718
719 2011-12-02  Sheriff Bot  <webkit.review.bot@gmail.com>
720
721         Unreviewed, rolling out r101783.
722         http://trac.webkit.org/changeset/101783
723         https://bugs.webkit.org/show_bug.cgi?id=73652
724
725         Broke chromium win build. (Requested by vsevik on #webkit).
726
727         * WebCore.gyp/WebCore.gyp:
728         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
729         (main):
730         * WebCore.gypi:
731         * bindings/scripts/generate-bindings.pl:
732         * page/DOMWindow.idl:
733         * webaudio/DOMWindowWebAudio.idl: Removed.
734
735 2011-11-28  Alexander Pavlov  <apavlov@chromium.org>
736
737         Inline non-replaced elements are reported to have zero width and height
738         https://bugs.webkit.org/show_bug.cgi?id=61117
739
740         Reviewed by Antti Koivisto.
741
742         According to http://www.w3.org/TR/CSS21/visudet.html, the "width" and "height" properties
743         do not apply for inline non-replaced elements and should have their initial value of "auto"
744         as their computed values.
745
746         * css/CSSComputedStyleDeclaration.cpp:
747         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
748
749 2011-12-02  Sami Kyostila  <skyostil@chromium.org>
750
751         [chromium] Make CCInputHandler scrolling stateful
752         https://bugs.webkit.org/show_bug.cgi?id=73345
753
754         This change makes the scrolling part of CCInputHandler stateful by
755         replacing scrollRootLayer() with scrollBegin(), scrollBy() and
756         scrollEnd(). This is done in preparation for scrollable sublayers.
757         Specifically, scrollBegin() will allow CCLayerTreeHostImpl to perform
758         input event hit testing to find the layer to be scrolled.
759
760         Reviewed by Steve Block.
761
762         Tested in CCLayerTreeHostImplTest.
763
764         * platform/graphics/chromium/cc/CCInputHandler.h:
765         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
766         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
767         (WebCore::CCLayerTreeHostImpl::currentTimeMs):
768         (WebCore::CCLayerTreeHostImpl::setNeedsRedraw):
769         (WebCore::findInnermostScrollableLayerAtPoint):
770         (WebCore::CCLayerTreeHostImpl::scrollBegin):
771         (WebCore::CCLayerTreeHostImpl::scrollBy):
772         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
773
774 2011-12-02  Kentaro Hara  <haraken@chromium.org>
775
776         Use the [Supplemental] IDL for webaudio attributes in Chromium
777         https://bugs.webkit.org/show_bug.cgi?id=73394
778
779         Reviewed by Adam Barth.
780
781         - Overview: Using the [Supplemental] IDL, this patch moves the attribute
782         declarations of webaudio from DOMWindow.idl into a new IDL file
783         webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
784         feature (aka a module).
785
786         - This patch changes the build flow of WebCore.gyp as follows:
787
788             Previous build flow:
789                 foreach $idl (all IDL files) {
790                     generate-bindings.pl depends on $idl;
791                     generate-bindings.pl reads $idl;
792                     generate-bindings.pl generates .h and .cpp files for $idl;
793                 }
794
795             New build flow (See the discussions in bug 72138 for more details):
796                 resolve-supplemental.pl depends on all IDL files;
797                 resolve-supplemental.pl reads all IDL files;
798                 resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
799                 resolve-supplemental.pl outputs supplemental_dependency.tmp;
800                 foreach $idl (all IDL files) {
801                     generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
802                     generate-bindings.pl reads $idl;
803                     generate-bindings.pl reads supplemental_dependency.tmp;
804                     generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
805                 }
806
807         - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
808         will be removed after build scripts for all platforms support the [Supplemental] IDL.
809         The motivation for the [Supplemented] IDL is as follows:
810
811         In order to support the [Supplemental] IDL, we need to
812         (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
813         (2) and run generate-bindings.pl with the supplemental_dependency.tmp.
814
815         This build flow requires a change on the following build scripts,
816         but changing all the build scripts all at once without any regression is too difficult:
817
818             - DerivedSources.make
819             - DerivedSources.pri
820             - GNUmakefile.am
821             - PlatformBlackBerry.cmake
822             - UseJSC.cmake
823             - UseV8.cmake
824             - WebCore.vcproj/MigrateScripts
825             - WebCore.vcproj/WebCore.vcproj
826             - bindings/gobject/GNUmakefile.am
827             - WebCore.gyp/WebCore.gyp
828
829         Thus, we are planning to change the build scripts one by one, which implies that
830         we need to allow the temporary state in which some build scripts support [Supplemental] IDL
831         but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
832         The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
833         in another IDL file somewhere, like this:
834
835             DOMWindowWebAudio.idl:
836                 interface [
837                     Supplemental=DOMWindow
838                 ] DOMWindowWebAudio {
839                     attribute attr1;
840                     attribute attr2;
841                 };
842
843             DOMWindow.idl:
844                 interface [
845                 ] DOMWindow {
846                     attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
847                     attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
848                     attribute attr3;
849                     attribute attr4;
850                 };
851
852         Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:
853
854             - If a given build script supports the [Supplemental] IDL,
855             generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
856             - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
857             as normal attributes and instead ignores all attributes with the [Supplemental] IDL
858             (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).
859
860         Tests: webaudio/*
861
862         * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
863         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
864         (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp), which are described at the first column of each line in the input file.
865         * WebCore.gypi: Added DOMWindowWebAudio.idl.
866         * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and instead uses the [Supplemental] IDL.
867         * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes. As I described above, the [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL.
868         * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL. The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.
869
870 2011-12-02  Vsevolod Vlasov  <vsevik@chromium.org>
871
872         Web Inspector: Network panel row highlighting does not work.
873         https://bugs.webkit.org/show_bug.cgi?id=73644
874
875         Reviewed by Pavel Feldman.
876
877         * inspector/front-end/networkLogView.css:
878         (.network-log-grid tr.highlighted-row):
879         (from):
880         (to):
881
882 2011-12-02  Pavel Feldman  <pfeldman@google.com>
883
884         Not reviewed: remove console.timeStamp from the inspector backend dispatcher.
885
886         * inspector/front-end/InspectorBackend.js:
887         (InspectorBackendClass.prototype.sendMessageObjectToBackend):
888
889 2011-12-02  Hajime Morrita  <morrita@chromium.org>
890
891         Unreviewed, rolling out r101751 and r101775.
892         http://trac.webkit.org/changeset/101751
893         http://trac.webkit.org/changeset/101775
894         https://bugs.webkit.org/show_bug.cgi?id=73191
895
896         breaks Windows build
897
898         * ForwardingHeaders/runtime/JSExportMacros.h: Removed.
899         * ForwardingHeaders/wtf/ExportMacros.h: Removed.
900         * WebCore.vcproj/QTMovieWinCommon.vsprops:
901         * WebCore.xcodeproj/project.pbxproj:
902         * config.h:
903         * platform/PlatformExportMacros.h: Removed.
904
905 2011-12-02  Pavel Feldman  <pfeldman@google.com>
906
907         Web Inspector: introduce backend stub generation from JSON for the standalone development / remote front-ends.
908         https://bugs.webkit.org/show_bug.cgi?id=73636
909
910         Reviewed by Yury Semikhatsky.
911
912         * inspector/front-end/DOMStorage.js:
913         * inspector/front-end/Database.js:
914         * inspector/front-end/InspectorBackend.js:
915         (InspectorBackendClass):
916         (InspectorBackendClass.prototype.registerCommand):
917         (InspectorBackendClass.prototype.registerEvent):
918         (InspectorBackendClass.prototype.runAfterPendingDispatches):
919         (InspectorBackendClass.prototype.loadFromJSONIfNeeded):
920         * inspector/front-end/TimelineManager.js:
921         * inspector/front-end/inspector.js:
922
923 2011-12-02  MORITA Hajime  <morrita@google.com>
924
925         Unreviewed, another attempt to build fix for r101751:
926         Adding an include path to make PlatformExportMacros.h visibile from QTMovieWin.
927
928         * WebCore.vcproj/QTMovieWinCommon.vsprops:
929
930 2011-12-02  Hajime Morrita  <morrita@chromium.org>
931
932         Unreviewed, rolling out r101772.
933         http://trac.webkit.org/changeset/101772
934
935         It didn't fix the build failure
936
937         * WebCore.vcproj/QTMovieWinCommon.vsprops:
938
939 2011-12-02  MORITA Hajime  <morrita@google.com>
940
941         Unreviewed attempt to build fix for r101751:
942         Adding an include path to make PlatformExportMacros.h visibile from QTMovieWin.
943
944         * WebCore.vcproj/QTMovieWinCommon.vsprops:
945
946 2011-12-01  Andrey Kosyakov  <caseq@chromium.org>
947
948         Web Inspector: [Extensions API] pass preferred resource line number to extension's open resource handler
949         https://bugs.webkit.org/show_bug.cgi?id=73084
950
951         Reviewed by Pavel Feldman.
952
953         * inspector/front-end/ExtensionAPI.js:
954         (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler.else.callbackWrapper):
955         (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler):
956         * inspector/front-end/ExtensionServer.js:
957         (WebInspector.ExtensionServer.prototype._handleOpenURL):
958         * inspector/front-end/HandlerRegistry.js:
959         (get WebInspector.HandlerRegistry.prototype.set dispatch):
960         * inspector/front-end/JavaScriptSourceFrame.js:
961         (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
962         * inspector/front-end/ResourcesPanel.js:
963         (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
964         * inspector/front-end/SourceFrame.js:
965         (WebInspector.SourceFrame.prototype.populateLineGutterContextMenu):
966         (WebInspector.SourceFrame.prototype.populateTextAreaContextMenu):
967         (WebInspector.TextViewerDelegateForSourceFrame.prototype.populateLineGutterContextMenu):
968         (WebInspector.TextViewerDelegateForSourceFrame.prototype.populateTextAreaContextMenu):
969         * inspector/front-end/TextViewer.js:
970         (WebInspector.TextViewer.prototype._contextMenu):
971         (WebInspector.TextViewerDelegate.prototype.populateLineGutterContextMenu):
972         (WebInspector.TextViewerDelegate.prototype.populateTextAreaContextMenu):
973         * inspector/front-end/externs.js:
974         (WebInspector.populateResourceContextMenu):
975         * inspector/front-end/inspector.js:
976         (WebInspector.populateResourceContextMenu):
977         (WebInspector._showAnchorLocation):
978
979 2011-12-01  Nayan Kumar K  <nayankk@motorola.com>
980
981         [GTK] Add compilation options to enable/disable Accelerated Compositing and to choose texture mapper implementation.
982         https://bugs.webkit.org/show_bug.cgi?id=73458
983
984         Reviewed by Martin Robinson.
985
986         No new tests added as this patch doesn't affect any functionality.
987
988         * GNUmakefile.am: Guard the include files.
989         * GNUmakefile.list.am: Guard the compilation of few files.
990         * platform/graphics/GraphicsLayer.h: Guard the typedef of GraphicsLayer.
991
992 2011-12-01  Andrey Kosyakov  <caseq@chromium.org>
993
994         Web Inspector: use object properties, not element attributes to pass preferred panel/line/request id in linkified anchors
995         https://bugs.webkit.org/show_bug.cgi?id=73556
996
997         Reviewed by Pavel Feldman.
998
999         * inspector/front-end/AuditFormatters.js:
1000         (WebInspector.AuditFormatters.resourceLink):
1001         * inspector/front-end/ConsoleMessage.js:
1002         (WebInspector.ConsoleMessageImpl.prototype._formatMessage.else.else.linkifier):
1003         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
1004         * inspector/front-end/DebuggerPresentationModel.js:
1005         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyLocation):
1006         (WebInspector.DebuggerPresentationModel.Linkifier.prototype._updateAnchor):
1007         * inspector/front-end/NetworkPanel.js:
1008         (WebInspector.NetworkPanel.prototype._resourceByAnchor):
1009         (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
1010         * inspector/front-end/ResourceUtils.js:
1011         (WebInspector.linkifyStringAsFragment):
1012         (WebInspector.linkifyResourceAsNode):
1013         (WebInspector.linkifyRequestAsNode):
1014         * inspector/front-end/ResourcesPanel.js:
1015         (WebInspector.ResourcesPanel.prototype.showAnchorLocation):
1016         * inspector/front-end/inspector.js:
1017         (WebInspector._showAnchorLocation):
1018
1019 2011-12-02  Pavel Feldman  <pfeldman@google.com>
1020
1021         Web Inspector: refactor InspectorBackendDispatcher so that it does not use JSON-serialized command templates.
1022         https://bugs.webkit.org/show_bug.cgi?id=73569
1023
1024         Reviewed by Yury Semikhatsky.
1025
1026         * inspector/CodeGeneratorInspector.py:
1027         (Generator.process_command):
1028         * inspector/Inspector.json:
1029         * inspector/front-end/InspectorBackend.js:
1030         (InspectorBackendClass.prototype._wrap.callback):
1031         (InspectorBackendClass.prototype._wrap):
1032         (InspectorBackendClass.prototype.registerCommand):
1033         (InspectorBackendClass.prototype._invoke):
1034         (InspectorBackendClass.prototype._sendMessageToBackend):
1035         (InspectorBackendClass.prototype._wrapCallbackAndSendMessageObject):
1036
1037 2011-12-02  Yosifumi Inoue  <yosin@chromium.org>
1038
1039         Range sliders and spin buttons don't work with multi-columns.
1040         https://bugs.webkit.org/show_bug.cgi?id=70898
1041
1042         Reviewed by Dan Bernstein.
1043
1044         This patch makes RenderBlock::hitTestColumns and
1045         RenderBoxModelObject::mapAbsoluteToLocal to handle point
1046         in multi-column same logic.
1047
1048         In multi-column, coordinate of box model rendering object is different
1049         from absolute coordinate.. Columns in box model rendering object spans
1050         vertically rather than horizontally.
1051
1052         When absolute point is represented in (column[i]+dx, column[0]+dy),
1053         it is (column[0]+dx, column[0] + columnHeight + dy) in box model
1054         rendering object coordinate.
1055
1056         Tests: fast/events/document-elementFromPoint.html
1057                fast/events/offsetX-offsetY.html
1058                fast/forms/number/spin-in-multi-column.html
1059                fast/forms/range/slider-in-multi-column.html
1060                fast/forms/select/listbox-in-multi-column.html
1061
1062         * rendering/RenderBlock.cpp:
1063         (WebCore::ColumnRectIterator::ColumnRectIterator): Added
1064         (WebCore::ColumnRectIterator::advance): Added
1065         (WebCore::ColumnRectIterator::columnRect): Added
1066         (WebCore::ColumnRectIterator::hasMore): Added
1067         (WebCore::ColumnRectIterator::adjust): Added
1068         (WebCore::ColumnRectIterator::update): Added
1069         (WebCore::RenderBlock::hitTestColumns): Use ColumnRectIterator.
1070         (WebCore::RenderBlock::adjustForColumnRect): Added
1071         * rendering/RenderBlock.h: Add adjustForColumnRect.
1072         * rendering/RenderBox.cpp:
1073         (WebCore::RenderBox::mapAbsoluteToLocalPoint): Call RenderBoxModelObject::mapAbsoluteToLocalPoint.
1074         * rendering/RenderBoxModelObject.cpp:
1075         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint): Move from RenderInline::mapAbsoluteToLocalPoint and call RenderBlock::adjustForColumnRect.
1076         * rendering/RenderBoxModelObject.h: add mapAbsoluteToLocalPoint.
1077         * rendering/RenderInline.cpp: Move mapAbsoluteToLocalPoint to RenderBoxModelObject.
1078         * rendering/RenderInline.h: remove mapAbsoluteToLocalPoint.
1079
1080 2011-12-02  Pavel Feldman  <pfeldman@google.com>
1081
1082         InspectorController destruction order leads to use-after-free
1083         https://bugs.webkit.org/show_bug.cgi?id=73582
1084
1085         Reviewed by Yury Semikhatsky.
1086
1087         * inspector/InspectorBaseAgent.h:
1088         (WebCore::InspectorBaseAgentInterface::discardAgent):
1089         * inspector/InspectorCSSAgent.cpp:
1090         (WebCore::InspectorCSSAgent::~InspectorCSSAgent):
1091         (WebCore::InspectorCSSAgent::discardAgent):
1092         * inspector/InspectorCSSAgent.h:
1093         * inspector/InspectorController.cpp:
1094         (WebCore::InspectorController::~InspectorController):
1095         * inspector/InspectorDOMDebuggerAgent.cpp:
1096         (WebCore::InspectorDOMDebuggerAgent::~InspectorDOMDebuggerAgent):
1097         (WebCore::InspectorDOMDebuggerAgent::discardAgent):
1098         * inspector/InspectorDOMDebuggerAgent.h:
1099
1100 2011-12-02  Leo Yang  <leo.yang@torchmobile.com.cn>
1101
1102         image element with src attribute can't be replaced by content: url() style
1103         https://bugs.webkit.org/show_bug.cgi?id=42840
1104
1105         ImageLoader were updating renderer even if the renderer's image is
1106         style generated content. This was wrong because if an image element
1107         with src attribute and style="content: url(...)" attribute the
1108         src image might override content image. The correct behavior should
1109         be showing content image.
1110
1111         This patch is differentiating style generated RenderImage from the
1112         normal RenderImage and keeps the RenderImageSource untouched if the
1113         renderer is generated content.
1114
1115         Reviewed by Darin Adler.
1116
1117         Test: fast/images/image-css3-content-data.html
1118
1119         * loader/ImageLoader.cpp:
1120         (WebCore::ImageLoader::renderImageResource):
1121         * rendering/RenderImage.cpp:
1122         (WebCore::RenderImage::RenderImage):
1123         * rendering/RenderImage.h:
1124         (WebCore::RenderImage::setIsGeneratedContent):
1125         (WebCore::RenderImage::isGeneratedContent):
1126         * rendering/RenderObject.cpp:
1127         (WebCore::RenderObject::createObject):
1128
1129 2011-12-01  David Levin  <levin@chromium.org>
1130
1131         Add a way to automatically size a single frame to fit its content.
1132         https://bugs.webkit.org/show_bug.cgi?id=73420
1133
1134         Reviewed by Dmitry Titov.
1135
1136         No new functionality exposed so no new tests. (There is a Chromium
1137         specific test in https://bugs.webkit.org/show_bug.cgi?id=73058.)
1138
1139         * page/FrameView.cpp:
1140         (WebCore::FrameView::FrameView): Initialized the new variables.
1141         (WebCore::FrameView::layout):
1142         (WebCore::FrameView::autoSizeIfEnabled):
1143         (WebCore::FrameView::enableAutoSizeMode):
1144         * page/FrameView.h:
1145
1146 2011-12-01  Hajime Morrita  <morrita@chromium.org>
1147
1148         JS_INLINE and WTF_INLINE should be visible from WebCore
1149         https://bugs.webkit.org/show_bug.cgi?id=73191
1150
1151         Reviewed by Kevin Ollivier.
1152
1153         - Moved export related definitions from config.h
1154           to ExportMacros.h, JSExportMacros.h and PlatformExportMacros.h
1155         - Added forwarding headers which are referred from config.h
1156
1157         No new tests. Only build related changes.
1158
1159         * ForwardingHeaders/runtime/JSExportMacros.h: Added.
1160         * ForwardingHeaders/wtf/ExportMacros.h: Added.
1161         * WebCore.xcodeproj/project.pbxproj:
1162         * config.h:
1163         * platform/PlatformExportMacros.h: Copied from Source/JavaScriptCore/wtf/ExportMacros.h.
1164
1165 2011-12-01  Jon Lee  <jonlee@apple.com>
1166
1167         [WK2] Add further support for notifications
1168         https://bugs.webkit.org/show_bug.cgi?id=73572
1169         <rdar://problem/10472195>
1170
1171         Reviewed by Darin Adler.
1172
1173         * WebCore.exp.in: Export constructor and dispatch functions
1174         * dom/EventNames.h: Add show event.
1175         * notifications/Notification.cpp:
1176         (WebCore::Notification::show): For the Mac platform, we just forward the show() call to the
1177         notification client and update the state, because we cannot get synchronous acknowledgment that the
1178         notification got delivered.
1179         (WebCore::Notification::dispatchShowEvent): Create simple events and dispatch to the notification.
1180         (WebCore::Notification::dispatchClickEvent): Ditto.
1181         (WebCore::Notification::dispatchCloseEvent): Ditto.
1182         (WebCore::Notification::dispatchErrorEvent): Ditto.
1183         * notifications/Notification.h: Add dispatch functions.
1184         * notifications/Notification.idl: Add onshow event listener. The ondisplay event listener should be
1185         removed when implementations change the event listener to onshow.
1186
1187 2011-12-01  Max Vujovic  <mvujovic@adobe.com>
1188
1189         Focus ring of imagemap's area element does not scale when CSS zoom style is applied
1190         https://bugs.webkit.org/show_bug.cgi?id=73595
1191
1192         Reviewed by Darin Adler.
1193
1194         Tests: fast/images/imagemap-focus-ring-zoom-style-expected.html
1195                fast/images/imagemap-focus-ring-zoom-style.html
1196
1197         * html/HTMLAreaElement.cpp:
1198         (WebCore::HTMLAreaElement::computePath):
1199         The computePath method now uses the RenderObject's effectiveZoom 
1200         instead of the Frame's page zoom to compute the path for the area
1201         element's focus ring.
1202
1203 2011-12-01  Kent Tamura  <tkent@chromium.org>
1204
1205         REGRESSION(r90971): Placeholder text of input control is rendered
1206         over positioned elements with z-index:0.
1207         https://bugs.webkit.org/show_bug.cgi?id=67408
1208
1209         Reviewed by Darin Adler.
1210
1211         The bug was caused by "position:relative" in the default style of
1212         -webkit-input-placeholder. If there were other positioned elements
1213         with z-index:0, a placeholder might be rendered over them.
1214
1215         "position:relative" is not needed because RenderTextControlSingleLine
1216         and RenderTextControlMultipleLine lay out the placeholder renderer by
1217         custom layout code.
1218
1219         Tests: fast/forms/placeholder-with-positioned-element.html
1220
1221         * css/html.css:
1222         (::-webkit-input-placeholder): Remove position:relative.
1223
1224 2011-12-01  Andreas Kling  <kling@webkit.org>
1225
1226         CSSMutableStyleDeclaration: Removed unused multiLength argument in setLengthProperty().
1227         <http://webkit.org/b/73602>
1228
1229         Reviewed by Darin Adler.
1230
1231         * css/CSSMutableStyleDeclaration.cpp:
1232         (WebCore::CSSMutableStyleDeclaration::setLengthProperty):
1233         * css/CSSMutableStyleDeclaration.h:
1234
1235 2011-12-01  Kentaro Hara  <haraken@chromium.org>
1236
1237         Unreviewed, rolling out r101737.
1238         http://trac.webkit.org/changeset/101737
1239         https://bugs.webkit.org/show_bug.cgi?id=73394
1240
1241         Chromium/Mac and Chromium/Win build are broken
1242
1243         * WebCore.gyp/WebCore.gyp:
1244         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
1245         (main):
1246         * WebCore.gypi:
1247         * bindings/scripts/generate-bindings.pl:
1248         * page/DOMWindow.idl:
1249         * webaudio/DOMWindowWebAudio.idl: Removed.
1250
1251 2011-12-01  Kentaro Hara  <haraken@chromium.org>
1252
1253         Use the [Supplemental] IDL for webaudio attributes in Chromium
1254         https://bugs.webkit.org/show_bug.cgi?id=73394
1255
1256         Reviewed by Adam Barth.
1257
1258         - Overview: Using the [Supplemental] IDL, this patch moves the attribute
1259         declarations of webaudio from DOMWindow.idl into a new IDL file
1260         webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
1261         feature (aka a module).
1262
1263         - This patch changes the build flow of WebCore.gyp as follows:
1264
1265             Previous build flow:
1266                 foreach $idl (all IDL files) {
1267                     generate-bindings.pl depends on $idl;
1268                     generate-bindings.pl reads $idl;
1269                     generate-bindings.pl generates .h and .cpp files for $idl;
1270                 }
1271
1272             New build flow (See the discussions in bug 72138 for more details):
1273                 resolve-supplemental.pl depends on all IDL files;
1274                 resolve-supplemental.pl reads all IDL files;
1275                 resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
1276                 resolve-supplemental.pl outputs supplemental_dependency.tmp;
1277                 foreach $idl (all IDL files) {
1278                     generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
1279                     generate-bindings.pl reads $idl;
1280                     generate-bindings.pl reads supplemental_dependency.tmp;
1281                     generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
1282                 }
1283
1284         - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
1285         will be removed after build scripts for all platforms support the [Supplemental] IDL.
1286         The motivation for the [Supplemented] IDL is as follows:
1287
1288         In order to support the [Supplemental] IDL, we need to
1289         (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
1290         (2) and run generate-bindings.pl with the supplemental_dependency.tmp.
1291
1292         This build flow requires a change on the following build scripts,
1293         but changing all the build scripts all at once without any regression is too difficult:
1294
1295             - DerivedSources.make
1296             - DerivedSources.pri
1297             - GNUmakefile.am
1298             - PlatformBlackBerry.cmake
1299             - UseJSC.cmake
1300             - UseV8.cmake
1301             - WebCore.vcproj/MigrateScripts
1302             - WebCore.vcproj/WebCore.vcproj
1303             - bindings/gobject/GNUmakefile.am
1304             - WebCore.gyp/WebCore.gyp
1305
1306         Thus, we are planning to change the build scripts one by one, which implies that
1307         we need to allow the temporary state in which some build scripts support [Supplemental] IDL
1308         but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
1309         The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
1310         in another IDL file somewhere, like this:
1311
1312             DOMWindowWebAudio.idl:
1313                 interface [
1314                     Supplemental=DOMWindow
1315                 ] DOMWindowWebAudio {
1316                     attribute attr1;
1317                     attribute attr2;
1318                 };
1319
1320             DOMWindow.idl:
1321                 interface [
1322                 ] DOMWindow {
1323                     attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
1324                     attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
1325                     attribute attr3;
1326                     attribute attr4;
1327                 };
1328
1329         Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:
1330
1331             - If a given build script supports the [Supplemental] IDL,
1332             generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
1333             - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
1334             as normal attributes and instead ignores all attributes with the [Supplemental] IDL
1335             (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).
1336
1337         Tests: webaudio/*
1338
1339         * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
1340         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
1341         (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp), which are described at the first column of each line in the input file.
1342         * WebCore.gypi: Added DOMWindowWebAudio.idl.
1343         * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and instead uses the [Supplemental] IDL.
1344         * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes. As I described above, the [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL.
1345         * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL. The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.
1346
1347 2011-12-01  Rafael Weinstein  <rafaelw@chromium.org>
1348
1349         [MutationObservers] StyleAttributeMutationScope shouldn't be implemented with static classes
1350         https://bugs.webkit.org/show_bug.cgi?id=73596
1351
1352         Reviewed by Ojan Vafai.
1353
1354         No tests needed. This patch is a minor refactor.
1355
1356         * css/CSSMutableStyleDeclaration.cpp:
1357
1358 2011-12-01  Andreas Kling  <kling@webkit.org>
1359
1360         CSSMutableStyleDeclaration: Remove unused function setStringProperty().
1361         <http://webkit.org/b/73597>
1362
1363         Reviewed by Darin Adler.
1364
1365         * css/CSSMutableStyleDeclaration.cpp:
1366         * css/CSSMutableStyleDeclaration.h:
1367
1368 2011-12-01  Ryosuke Niwa  <rniwa@webkit.org>
1369
1370         REGRESSION(r101268): Intermittent assertion failure in fast/block/child-not-removed-from-parent-lineboxes-crash.html
1371         https://bugs.webkit.org/show_bug.cgi?id=73250
1372
1373         Reviewed by Darin Adler.
1374
1375         Reset the position when exiting early in layoutRunsAndFloatsInRange.
1376
1377         No new tests because we don't have a reliable reproduction for this failure.
1378         However, the failure is caught by the existing fast/block/child-not-removed-from-parent-lineboxes-crash.html
1379         intermittently with about 30% probability.
1380
1381         * rendering/RenderBlockLineLayout.cpp:
1382         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
1383
1384 2011-12-01  Shinya Kawanaka  <shinyak@google.com>
1385
1386         Asynchronous SpellChecker should consider multiple requests.
1387         https://bugs.webkit.org/show_bug.cgi?id=72939
1388
1389         Reviewed by Hajime Morita.
1390
1391         Now SpellChecker saves a request when it is processing the previous spellcheck request.
1392         If there is a request having the same root editable element, the older request is replaced by newer request.
1393
1394         Test: editing/spelling/spellcheck-queue.html
1395
1396         * editing/SpellChecker.cpp:
1397         (WebCore::SpellChecker::SpellCheckRequest::SpellCheckRequest):
1398           A structure to have spell check request.
1399         (WebCore::SpellChecker::SpellCheckRequest::sequence):
1400         (WebCore::SpellChecker::SpellCheckRequest::range):
1401         (WebCore::SpellChecker::SpellCheckRequest::text):
1402         (WebCore::SpellChecker::SpellCheckRequest::mask):
1403         (WebCore::SpellChecker::SpellCheckRequest::rootEditableElement):
1404         (WebCore::SpellChecker::SpellChecker):
1405         (WebCore::SpellChecker::createRequest):
1406         (WebCore::SpellChecker::timerFiredToProcessQueuedRequest):
1407           When timer is fired, queued request is processed if any.
1408         (WebCore::SpellChecker::canCheckAsynchronously):
1409         (WebCore::SpellChecker::requestCheckingFor):
1410           When the spellchecker is processing another request, the latest request is queued.
1411         (WebCore::SpellChecker::invokeRequest):
1412         (WebCore::SpellChecker::enqueueRequest):
1413           Enqueues a request. If there is an older request whose root editable element is the same as the request,
1414           it will be replaced.
1415         (WebCore::SpellChecker::didCheck):
1416         * editing/SpellChecker.h:
1417
1418 2011-12-01  Takashi Toyoshima  <toyoshim@chromium.org>
1419
1420         bufferedAmount calculation is wrong in CLOSING and CLOSED state.
1421         https://bugs.webkit.org/show_bug.cgi?id=73404
1422
1423         Reviewed by Kent Tamura.
1424
1425         WebSocket::bufferedAmount() must return buffered frame size including
1426         disposed frames which are passed via send() calls after close().
1427
1428         Old implementation had a problem at CLOSING state. Buffered frame size
1429         was added to m_bufferedAmountAfterClose at close(). But the function
1430         returns the sum of m_bufferedAmountAfterClose and internally buffered
1431         frame size, or m_channel->bufferedAmount(). So, buffered frames was
1432         double counted.
1433
1434         In new implementation, m_bufferedAmount always represents buffered
1435         frame size and m_bufferedAmountAfterClose does disposed frame size.
1436         As a result, bufferedAmount() implementation become just to return the
1437         sum of m_bufferedAmount and m_bufferedAmountAfterClose.
1438
1439         Test: http/tests/websocket/tests/hybi/bufferedAmount-after-close-in-busy.html
1440
1441         * websockets/WebSocket.cpp: Implement new bufferedAmount handling.
1442         (WebCore::saturateAdd):
1443         (WebCore::WebSocket::WebSocket):
1444         (WebCore::WebSocket::send):
1445         (WebCore::WebSocket::close):
1446         (WebCore::WebSocket::bufferedAmount):
1447         (WebCore::WebSocket::didUpdateBufferedAmount):
1448         (WebCore::WebSocket::didClose):
1449         * websockets/WebSocket.h:
1450
1451 2011-12-01  Kentaro Hara  <haraken@chromium.org>
1452
1453         Replace a custom constructor of window.Option with the [NamedConstructor] IDL
1454         https://bugs.webkit.org/show_bug.cgi?id=73498
1455
1456         Reviewed by Adam Barth.
1457
1458         Removes JSOptionConstructor.{h,cpp} and generates the constructor of window.Option
1459         by the [NamedConstructor] IDL.
1460
1461         Tests: fast/js/custom-constructors.html
1462                fast/forms/option-index.html
1463                fast/forms/add-and-remove-option.html
1464                fast/dom/dom-add-optionelement.html
1465
1466         * GNUmakefile.list.am: Removed JSOptionConstructor.{h,cpp}.
1467         * Target.pri: Ditto.
1468         * UseJSC.cmake: Ditto.
1469         * WebCore.gypi: Ditto.
1470         * WebCore.order: Ditto.
1471         * WebCore.vcproj/WebCore.vcproj: Ditto.
1472         * WebCore.xcodeproj/project.pbxproj: Ditto.
1473         * bindings/js/JSBindingsAllInOne.cpp: Ditto.
1474
1475         * bindings/js/JSDOMWindowCustom.cpp:
1476         (WebCore::JSDOMWindow::option): Specifies the NamedConstructor.
1477         * bindings/js/JSOptionConstructor.cpp: Removed.
1478         * bindings/js/JSOptionConstructor.h: Removed.
1479         * page/DOMWindow.idl: Removed the [JSCustomConstructor] IDL.
1480
1481 2011-12-01  Kentaro Hara  <haraken@chromium.org>
1482
1483         Replace a custom constructor of window.Audio with the [NamedConstructor] IDL
1484         https://bugs.webkit.org/show_bug.cgi?id=73496
1485
1486         Reviewed by Adam Barth.
1487
1488         Removes JSAudioConstructor.{h,cpp} and generates the constructor of window.Audio
1489         by the [NamedConstructor] IDL.
1490
1491         Tests: fast/js/custom-constructors.html
1492                media/audio-constructor.html
1493                media/audio-constructor-src.html
1494                media/audio-constructor-preload.html
1495                media/audio-controls-do-not-fade-out.html
1496                media/audio-controls-rendering.html
1497
1498         * GNUmakefile.list.am: Removed JSAudioConstructor.{h,cpp}.
1499         * Target.pri: Ditto.
1500         * UseJSC.cmake: Ditto.
1501         * WebCore.gypi: Ditto.
1502         * WebCore.order: Ditto.
1503         * WebCore.vcproj/WebCore.vcproj: Ditto.
1504         * WebCore.xcodeproj/project.pbxproj: Ditto.
1505         * bindings/js/JSBindingsAllInOne.cpp: Ditto.
1506
1507         * bindings/js/JSAudioConstructor.cpp: Removed.
1508         * bindings/js/JSAudioConstructor.h: Removed.
1509         * bindings/js/JSDOMWindowCustom.cpp:
1510         (WebCore::JSDOMWindow::audio): Specifies the NamedConstructor.
1511         * page/DOMWindow.idl: Removed the [JSCustomConstructor] IDL.
1512
1513 2011-12-01  Mark Pilgrim  <pilgrim@chromium.org>
1514
1515         [FileSystem API] DirectoryEntry.removeRecursively successCallback is required
1516         https://bugs.webkit.org/show_bug.cgi?id=69644
1517
1518         Reviewed by Adam Barth.
1519
1520         * fileapi/DirectoryEntry.idl: remove [Optional] flag from successCallback
1521
1522 2011-12-01  Mark Pilgrim  <pilgrim@chromium.org>
1523
1524         [FileSystem API] DirectoryEntry.getDirectory path argument is required
1525         https://bugs.webkit.org/show_bug.cgi?id=69643
1526
1527         Reviewed by Adam Barth.
1528
1529         Test: fast/filesystem/simple-required-arguments-getdirectory.html
1530
1531         * bindings/js/JSDirectoryEntryCustom.cpp:
1532         (WebCore::JSDirectoryEntry::getDirectory): throw TypeError if not enough arguments
1533         * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
1534         (WebCore::V8DirectoryEntry::getDirectoryCallback): throw TypeError if not enough arguments
1535
1536 2011-12-01  Rafael Weinstein  <rafaelw@chromium.org>
1537
1538         V8 bindings cleanup: V8WindowErrorHandler shouldn't be directly invoking script
1539         https://bugs.webkit.org/show_bug.cgi?id=73576
1540
1541         Reviewed by Adam Barth.
1542
1543         No tests needed. This patch is just bindings hygiene.
1544
1545         * bindings/v8/V8WindowErrorHandler.cpp:
1546         (WebCore::V8WindowErrorHandler::callListenerFunction):
1547
1548 2011-12-01  Benjamin Poulain  <benjamin@webkit.org>
1549
1550         URLs are encoded in UTF-8, then decoded as if they are Latin1
1551         https://bugs.webkit.org/show_bug.cgi?id=71758
1552
1553         Reviewed by Darin Adler.
1554
1555         Previously, invalid URLs could have a string emanating from a
1556         partial parsing of the input. The creation of the string was done
1557         through the Latin1 codec regardless of the encoding of the char* url.
1558
1559         This caused two types of issues, URLs were evaluated as half-parsed,
1560         and the coding and decoding of the string was not consistent.
1561
1562         This patch changes KURL::parse() to fallback on the original string
1563         whenever the parsing of the URL fails.
1564
1565         Test: fast/url/invalid-urls-utf8.html
1566
1567         * platform/KURL.cpp:
1568         (WebCore::KURL::KURL):
1569         (WebCore::KURL::init):
1570         (WebCore::KURL::parse):
1571         Previously, originalString was only used as an optimization to avoid
1572         the allocation of a string. Since this optimization depends on the
1573         comparison of the incoming string and the encoded buffer.
1574         This patches generalizes originalString to always be the original string
1575         being parsed by KURL. The optimization is kept by comparing that string
1576         and the final parsed result.
1577         * platform/KURL.h:
1578         (WebCore::KURL::parse):
1579         * platform/cf/KURLCFNet.cpp:
1580         (WebCore::KURL::KURL):
1581         * platform/mac/KURLMac.mm:
1582         (WebCore::KURL::KURL):
1583
1584 2011-12-01  Martin Robinson  <mrobinson@igalia.com>
1585
1586         [GTK] Add a helper function to find the current executable's path
1587         https://bugs.webkit.org/show_bug.cgi?id=73473
1588
1589         Reviewed by Gustavo Noronha Silva.
1590
1591         No new tests. This should not change behavior.
1592
1593         * platform/gtk/FileSystemGtk.cpp:
1594         (WebCore::applicationDirectoryPath): Now use the new WTF function to get the
1595         current executable's path.
1596
1597 2011-12-01  Andreas Kling  <kling@webkit.org>
1598
1599         StyledElement: Clean up inline style accessors.
1600         <http://webkit.org/b/73568>
1601
1602         Reviewed by Antti Koivisto.
1603
1604         Renamed StyledElement's getInlineStyleDecl() to ensureInlineStyleDecl() to
1605         make it clear that it will always return non-null as opposed to inlineStyleDecl().
1606
1607         Also updated call sites to store the return value in a CSSInlineStyleDeclaration*
1608         rather than a CSSMutableStyleDeclaration*, and reduced scoping of temporaries
1609         in some cases.
1610
1611         * dom/StyledElement.cpp:
1612         (WebCore::StyledElement::createInlineStyleDecl):
1613         (WebCore::StyledElement::destroyInlineStyleDecl):
1614         (WebCore::StyledElement::parseMappedAttribute):
1615         (WebCore::StyledElement::ensureInlineStyleDecl):
1616         (WebCore::StyledElement::style):
1617         (WebCore::StyledElement::copyNonAttributeProperties):
1618         (WebCore::StyledElement::addSubresourceAttributeURLs):
1619         * dom/StyledElement.h:
1620         (WebCore::StyledElement::inlineStyleDecl):
1621         * editing/ApplyStyleCommand.cpp:
1622         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
1623         (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
1624         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
1625         (WebCore::ApplyStyleCommand::addBlockStyle):
1626         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
1627         * editing/DeleteButtonController.cpp:
1628         (WebCore::DeleteButtonController::createDeletionUI):
1629         (WebCore::DeleteButtonController::show):
1630         (WebCore::DeleteButtonController::hide):
1631         * editing/ReplaceSelectionCommand.cpp:
1632         (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
1633         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
1634         * html/HTMLTextFormControlElement.cpp:
1635         (WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):
1636         * html/ValidationMessage.cpp:
1637         (WebCore::adjustBubblePosition):
1638         * html/shadow/MediaControlElements.cpp:
1639         (WebCore::MediaControlElement::show):
1640         (WebCore::MediaControlElement::hide):
1641         (WebCore::MediaControlPanelElement::setPosition):
1642         (WebCore::MediaControlPanelElement::resetPosition):
1643         (WebCore::MediaControlPanelElement::makeOpaque):
1644         (WebCore::MediaControlPanelElement::makeTransparent):
1645         (WebCore::MediaControlInputElement::show):
1646         (WebCore::MediaControlInputElement::hide):
1647         * html/shadow/MeterShadowElement.cpp:
1648         (WebCore::MeterValueElement::setWidthPercentage):
1649         * html/shadow/ProgressShadowElement.cpp:
1650         (WebCore::ProgressValueElement::setWidthPercentage):
1651         * html/shadow/SliderThumbElement.cpp:
1652         (WebCore::TrackLimiterElement::create):
1653
1654 2011-12-01  Kelly Norton  <knorton@google.com>
1655
1656         More void functions eager to return values in RenderObject & WebFrameImpl
1657         https://bugs.webkit.org/show_bug.cgi?id=73571
1658
1659         Reviewed by Adam Barth.
1660
1661         * rendering/RenderObject.h:
1662         (WebCore::RenderObject::computeAbsoluteRepaintRect):
1663
1664 2011-12-01  Sheriff Bot  <webkit.review.bot@gmail.com>
1665
1666         Unreviewed, rolling out r101691.
1667         http://trac.webkit.org/changeset/101691
1668         https://bugs.webkit.org/show_bug.cgi?id=73588
1669
1670         Tests fail on Chromium bots, early warning system warned
1671         committer, please adjust test_expectations in patch (Requested
1672         by scheib on #webkit).
1673
1674         * platform/KURL.cpp:
1675         (WebCore::KURL::KURL):
1676         (WebCore::KURL::init):
1677         (WebCore::KURL::parse):
1678         * platform/KURL.h:
1679         * platform/cf/KURLCFNet.cpp:
1680         (WebCore::KURL::KURL):
1681         * platform/mac/KURLMac.mm:
1682         (WebCore::KURL::KURL):
1683
1684 2011-12-01  Peter Beverloo  <peter@chromium.org>
1685
1686         [Chromium] Add the FontCache implementation for Android
1687         https://bugs.webkit.org/show_bug.cgi?id=73452
1688
1689         Add the FontCache implementation specific for the Chromium WebKit
1690         port on Android, and include various font-related files intended for
1691         Linux which can be re-used.
1692
1693         Reviewed by Adam Barth.
1694
1695         * WebCore.gyp/WebCore.gyp:
1696         * WebCore.gypi:
1697         * platform/graphics/chromium/FontCacheAndroid.cpp: Added.
1698         (WebCore::getFallbackFontName):
1699         (WebCore::isFallbackFamily):
1700         (WebCore::FontCache::platformInit):
1701         (WebCore::FontCache::getFontDataForCharacters):
1702         (WebCore::FontCache::getSimilarFontPlatformData):
1703         (WebCore::FontCache::getLastResortFallbackFont):
1704         (WebCore::FontCache::getTraitsInFamily):
1705         (WebCore::FontCache::createFontPlatformData):
1706
1707 2011-12-01  Tony Chang  <tony@chromium.org>
1708
1709         Need to implement flex-flow: row-reverse
1710         https://bugs.webkit.org/show_bug.cgi?id=70778
1711
1712         Reviewed by Ojan Vafai.
1713
1714         We can't just change the direction of the FlexOrderIterator because we want the overflow to be
1715         on the left side.  Instead, we apply similar logic as when we're laying out RTL content. Putting
1716         the check in isLeftToRightFlow() lets us flip the flexbox's border and padding and the flexitems'
1717         margins.  We then layout from right to left in layoutAndPlaceChildren.
1718
1719         Also remove 2 uncalled functions.
1720
1721         * rendering/RenderFlexibleBox.cpp:
1722         (WebCore::RenderFlexibleBox::isReverseFlow):
1723         (WebCore::RenderFlexibleBox::isLeftToRightFlow):
1724         * rendering/RenderFlexibleBox.h:
1725
1726 2011-12-01  Daniel Sievers  <sievers@chromium.org>
1727
1728         [Chromium] Early returns in calculateDrawTransformsAndVisibilityInternal() are not respected by parent.
1729         https://bugs.webkit.org/show_bug.cgi?id=73270
1730
1731         Non-drawing child trees should not be added to the parent render surface's layer list
1732         and should neither extend the parent layer's drawable content rect.
1733
1734         This also fixes assertions from the content texture residency logic, which doesn't like it
1735         if we try to use a render surface through a parent, while that surface itself was never 'used'
1736         in the same frame.
1737
1738         Reviewed by James Robinson.
1739
1740         Added unit test.
1741
1742         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1743         (WebCore::calculateDrawTransformsAndVisibilityInternal):
1744
1745 2011-12-01  David Reveman  <reveman@chromium.org>
1746
1747         [Chromium] Use contentBounds instead of bounds for invalidation.
1748         https://bugs.webkit.org/show_bug.cgi?id=73525
1749
1750         Reviewed by James Robinson.
1751
1752         Use setNeedsDisplay() instead of setNeedsDisplayRect() when possible.
1753
1754         No new tests.
1755
1756         * platform/graphics/chromium/LayerChromium.cpp:
1757         (WebCore::LayerChromium::setBounds):
1758
1759 2011-12-01  Andreas Kling  <kling@webkit.org>
1760
1761         CSSStyleSelector: Add missing fields to constructor initializer list.
1762         <http://webkit.org/b/73565>
1763
1764         Reviewed by Antti Koivisto.
1765
1766         * css/CSSStyleSelector.cpp:
1767         (WebCore::CSSStyleSelector::CSSStyleSelector):
1768
1769 2011-12-01  Benjamin Poulain  <bpoulain@apple.com>
1770
1771         Get rid of the unused function nameForCursorType()
1772         https://bugs.webkit.org/show_bug.cgi?id=73529
1773
1774         Reviewed by Joseph Pecoraro.
1775
1776         The function nameForCursorType was introduced in r63339 and has not been used anywhere
1777         since that commit.
1778
1779         * WebCore.exp.in:
1780         * platform/Cursor.cpp:
1781         * platform/Cursor.h:
1782
1783 2011-12-01  Andreas Kling  <kling@webkit.org>
1784
1785         CSSMutableStyleDeclaration: Unnecessary double hash lookup in construction.
1786         <http://webkit.org/b/73564>
1787
1788         Reviewed by Antti Koivisto.
1789
1790         Use HashMap::find() instead of contains() followed by get() on
1791         successful lookup.
1792
1793         * css/CSSMutableStyleDeclaration.cpp:
1794         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
1795
1796 2011-11-30  Benjamin Poulain  <benjamin@webkit.org>
1797
1798         URLs are encoded in UTF-8, then decoded as if they are Latin1
1799         https://bugs.webkit.org/show_bug.cgi?id=71758
1800
1801         Reviewed by Darin Adler.
1802
1803         Previously, invalid URLs could have a string emanating from a
1804         partial parsing of the input. The creation of the string was done
1805         through the Latin1 codec regardless of the encoding of the char* url.
1806
1807         This caused two types of issues, URLs were evaluated as half-parsed,
1808         and the coding and decoding of the string was not consistent.
1809
1810         This patch changes KURL::parse() to fallback on the original string
1811         whenever the parsing of the URL fails.
1812
1813         Test: fast/url/invalid-urls-utf8.html
1814
1815         * platform/KURL.cpp:
1816         (WebCore::KURL::KURL):
1817         (WebCore::KURL::init):
1818         (WebCore::KURL::parse):
1819         Previously, originalString was only used as an optimization to avoid
1820         the allocation of a string. Since this optimization depends on the
1821         comparison of the incoming string and the encoded buffer.
1822         This patches generalizes originalString to always be the original string
1823         being parsed by KURL. The optimization is kept by comparing that string
1824         and the final parsed result.
1825         * platform/KURL.h:
1826         (WebCore::KURL::parse):
1827         * platform/cf/KURLCFNet.cpp:
1828         (WebCore::KURL::KURL):
1829         * platform/mac/KURLMac.mm:
1830         (WebCore::KURL::KURL):
1831
1832 2011-12-01  Wei Charles  <charles.wei@torchmobile.com.cn>
1833
1834         [Blackberry] Upstream BlackBerry porting of plugin framework -- part 2
1835         https://bugs.webkit.org/show_bug.cgi?id=73513
1836
1837         Reviewed by Antonio Gomes.
1838
1839         No new tests for now.
1840
1841         * plugins/blackberry/NPCallbacksBlackBerry.cpp: Added.
1842         * plugins/blackberry/NPCallbacksBlackBerry.h: Added.
1843         * plugins/blackberry/PluginViewPrivateBlackBerry.cpp: Added.
1844         * plugins/blackberry/PluginViewPrivateBlackBerry.h: Added.
1845
1846 2011-12-01  Andreas Kling  <kling@webkit.org>
1847
1848         JSC/CSSOM: root(CSSElementStyleDeclaration) should never need to follow the element.
1849         <http://webkit.org/b/73561>
1850
1851         Reviewed by Antti Koivisto.
1852
1853         A CSSElementStyleDeclaration should always either have a null element pointer,
1854         or return a valid parentStyleSheet(), since having an element pointer implies
1855         having an associated element sheet.
1856
1857         In light of this, replace the opaque-root-from-element path for style declarations
1858         by an assertion.
1859
1860         * bindings/js/JSDOMBinding.h:
1861         (WebCore::root):
1862
1863 2011-12-01  Patrick Gansterer  <paroga@webkit.org>
1864
1865         [CMake] Make the feature defines for DOM names explicit
1866         https://bugs.webkit.org/show_bug.cgi?id=72812
1867
1868         Reviewed by Daniel Bates.
1869
1870         * CMakeLists.txt:
1871
1872 2011-11-30  Dmitry Lomov  <dslomov@google.com>
1873
1874         https://bugs.webkit.org/show_bug.cgi?id=73503
1875         [Chromium][V8] Implement ArrayBuffer transfer in chromium.
1876         Portions of this patch come from Luke Zarko.
1877
1878         Reviewed by David Levin.
1879
1880         Test: fast/canvas/webgl/arraybuffer-transfer-of-control.html
1881
1882         * bindings/v8/SerializedScriptValue.cpp:
1883         (WebCore::V8ObjectMap::Writer::writeTransferredArrayBuffer):
1884         (WebCore::V8ObjectMap::Serializer::Serializer):
1885         (WebCore::V8ObjectMap::Serializer::writeAndGreyArrayBufferView):
1886         (WebCore::V8ObjectMap::Serializer::writeArrayBuffer):
1887         (WebCore::V8ObjectMap::Serializer::writeTransferredArrayBuffer):
1888         (WebCore::V8ObjectMap::Serializer::doSerialize):
1889         (WebCore::V8ObjectMap::Reader::read):
1890         (WebCore::V8ObjectMap::Reader::readArrayBufferView):
1891         (WebCore::V8ObjectMap::Deserializer::Deserializer):
1892         (WebCore::V8ObjectMap::Deserializer::tryGetTransferredArrayBuffer):
1893         (WebCore::SerializedScriptValue::create):
1894         (WebCore::neuterBinding):
1895         (WebCore::SerializedScriptValue::transferArrayBuffers):
1896         (WebCore::SerializedScriptValue::SerializedScriptValue):
1897         (WebCore::SerializedScriptValue::deserialize):
1898         * bindings/v8/SerializedScriptValue.h:
1899
1900 2011-12-01  Roland Steiner  <rolandsteiner@chromium.org>
1901
1902         Shadow ID pseudo-element selectors serialize incorrectly
1903         https://bugs.webkit.org/show_bug.cgi?id=73542
1904
1905         Avoid space for ShadowDescendant combinator.
1906
1907         Reviewed by Dimitri Glazkov.
1908
1909         * css/CSSSelector.cpp:
1910         (WebCore::CSSSelector::selectorText):
1911
1912 2011-12-01  Wajahat Siddiqui  <mdwajahatali.siddiqui@motorola.com>
1913
1914         Popup menu can get stuck in closed state when GtkMenu can't grab mouse.
1915         https://bugs.webkit.org/show_bug.cgi?id=56466
1916
1917         Add a check if popup menu is not visible due to no mouse grab,
1918         Ensure WebCore is in sync with proper state.
1919
1920         Reviewed by Martin Robinson.
1921
1922         * platform/gtk/PopupMenuGtk.cpp:
1923         (WebCore::PopupMenuGtk::show):
1924
1925 2011-12-01  Eric Carlson  <eric.carlson@apple.com>
1926
1927         When playing audio in <video>, the poster is hidden on play
1928         https://bugs.webkit.org/show_bug.cgi?id=73405
1929
1930         Reviewed by Darin Adler.
1931
1932         * html/HTMLVideoElement.cpp:
1933         (WebCore::HTMLVideoElement::hasAvailableVideoFrame): Don't return true if the file
1934             doesn't have video.
1935
1936 2011-12-01  Eric Carlson  <eric.carlson@apple.com>
1937
1938         Add Settings for text track types
1939         https://bugs.webkit.org/show_bug.cgi?id=73383
1940
1941         Reviewed by Darin Adler.
1942
1943         No new tests, settings are not used yet.
1944
1945         * page/Settings.cpp:
1946         (WebCore::Settings::Settings): Initialize new settings.
1947         * page/Settings.h:
1948         (WebCore::Settings::setShouldDisplaySubtitles): New.
1949         (WebCore::Settings::shouldDisplaySubtitles): Ditto.
1950         (WebCore::Settings::setShouldDisplayCaptions): Ditto.
1951         (WebCore::Settings::shouldDisplayCaptions): Ditto.
1952         (WebCore::Settings::setShouldDisplayTextDescriptions): Ditto.
1953         (WebCore::Settings::shouldDisplayTextDescriptions): Ditto.
1954
1955 2011-12-01  Eric Carlson  <eric.carlson@apple.com>
1956
1957         HTMLTrackElement.readyState should return TextTrack "readiness state".
1958         https://bugs.webkit.org/show_bug.cgi?id=73466
1959
1960         Reviewed by Darin Adler.
1961
1962         * html/HTMLTrackElement.cpp:
1963         (WebCore::HTMLTrackElement::HTMLTrackElement): Don't initialize m_readyState.
1964         (WebCore::HTMLTrackElement::setReadyState): Return the TextTrack state.
1965         (WebCore::HTMLTrackElement::readyState): Set the TextTrack state.
1966         * html/HTMLTrackElement.h: Remove m_readyState.
1967
1968         * html/TextTrack.cpp:
1969         (WebCore::TextTrack::TextTrack): Initialize m_readinessState.
1970         * html/TextTrack.h:
1971         (WebCore::TextTrack::readinessState): New.
1972         (WebCore::TextTrack::setReadinessState): New.
1973
1974 2011-12-01  Kentaro Hara  <haraken@chromium.org>
1975
1976         Unreviewed, rolling out r101669.
1977         http://trac.webkit.org/changeset/101669
1978         https://bugs.webkit.org/show_bug.cgi?id=73394
1979
1980         Win build and Mac build are failing
1981
1982         * WebCore.gyp/WebCore.gyp:
1983         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
1984         (main):
1985         * WebCore.gypi:
1986         * bindings/scripts/generate-bindings.pl:
1987         * page/DOMWindow.idl:
1988         * webaudio/DOMWindowWebAudio.idl: Removed.
1989
1990 2011-12-01  Pavel Feldman  <pfeldman@google.com>
1991
1992         Web Inspector: further align front-end configurations: get rid of saveAsAvailable preference, inline drag glass pane.
1993         https://bugs.webkit.org/show_bug.cgi?id=73555
1994
1995         Reviewed by Yury Semikhatsky.
1996
1997         * inspector/InspectorFrontendClient.h:
1998         * inspector/InspectorFrontendClientLocal.h:
1999         (WebCore::InspectorFrontendClientLocal::canSaveAs):
2000         * inspector/InspectorFrontendHost.cpp:
2001         (WebCore::InspectorFrontendHost::canSaveAs):
2002         * inspector/InspectorFrontendHost.h:
2003         * inspector/InspectorFrontendHost.idl:
2004         * inspector/front-end/ExtensionServer.js:
2005         (WebInspector.ExtensionServer.prototype.hasExtensions):
2006         * inspector/front-end/InspectorFrontendHostStub.js:
2007         (.WebInspector.InspectorFrontendHostStub.prototype.canSaveAs):
2008         * inspector/front-end/NetworkPanel.js:
2009         (WebInspector.NetworkLogView.prototype._contextMenu):
2010         * inspector/front-end/ResourcesPanel.js:
2011         * inspector/front-end/Settings.js:
2012         * inspector/front-end/SettingsScreen.js:
2013         (WebInspector.SettingsScreen):
2014         * inspector/front-end/StylesSidebarPane.js:
2015         * inspector/front-end/UIUtils.js:
2016         (WebInspector.elementDragStart):
2017         (WebInspector.elementDragEnd):
2018
2019 2011-12-01  Pavel Feldman  <pfeldman@google.com>
2020
2021         Web Inspector: extract static part of the InspectorBackend from the generator.
2022         https://bugs.webkit.org/show_bug.cgi?id=73562
2023
2024         Reviewed by Timothy Hatcher.
2025
2026         We should only generate the mapping between the command parameters and slots,
2027         rest of the backend is static.
2028
2029         * WebCore.gypi:
2030         * WebCore.vcproj/WebCore.vcproj:
2031         * inspector/CodeGeneratorInspector.py:
2032         (Generator.go):
2033         (Generator.process_event):
2034         (Generator.process_command):
2035         * inspector/compile-front-end.sh:
2036         * inspector/front-end/InspectorBackend.js: Added.
2037         (InspectorBackendClass):
2038         (InspectorBackendClass.prototype.registerCommand):
2039         (InspectorBackendClass.prototype.registerEvent):
2040         (InspectorBackendClass.prototype._invoke):
2041         (InspectorBackendClass.prototype._sendMessageToBackend):
2042         (InspectorBackendClass.prototype._wrapCallbackAndSendMessageObject):
2043         (InspectorBackendClass.prototype.sendMessageObjectToBackend):
2044         (InspectorBackendClass.prototype.registerDomainDispatcher):
2045         (InspectorBackendClass.prototype.dispatch.messageObject.error.__proto__.getDescription):
2046         (InspectorBackendClass.prototype.dispatch.messageObject.error.__proto__.toString):
2047         (InspectorBackendClass.prototype.dispatch.messageObject.error.__proto__.getMessage):
2048         (InspectorBackendClass.prototype.dispatch):
2049         (InspectorBackendClass.prototype.reportProtocolError):
2050         (InspectorBackendClass.prototype.runAfterPendingDispatches):
2051         * inspector/front-end/WebKit.qrc:
2052         * inspector/front-end/inspector.html:
2053
2054 2011-12-01  Kentaro Hara  <haraken@chromium.org>
2055
2056         Use the [Supplemental] IDL for webaudio attributes in Chromium
2057         https://bugs.webkit.org/show_bug.cgi?id=73394
2058
2059         Reviewed by Adam Barth.
2060
2061         - Overview: Using the [Supplemental] IDL, this patch moves the attribute
2062         declarations of webaudio from DOMWindow.idl into a new IDL file
2063         webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
2064         feature (aka a module).
2065
2066         - This patch changes the build flow of WebCore.gyp as follows:
2067
2068             Previous build flow:
2069                 foreach $idl (all IDL files) {
2070                     generate-bindings.pl depends on $idl;
2071                     generate-bindings.pl reads $idl;
2072                     generate-bindings.pl generates .h and .cpp files for $idl;
2073                 }
2074
2075             New build flow (See the discussions in bug 72138 for more details):
2076                 resolve-supplemental.pl depends on all IDL files;
2077                 resolve-supplemental.pl reads all IDL files;
2078                 resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
2079                 resolve-supplemental.pl outputs supplemental_dependency.tmp;
2080                 foreach $idl (all IDL files) {
2081                     generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
2082                     generate-bindings.pl reads $idl;
2083                     generate-bindings.pl reads supplemental_dependency.tmp;
2084                     generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
2085                 }
2086
2087         - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
2088         will be removed after build scripts for all platforms support the [Supplemental] IDL.
2089         The motivation for the [Supplemented] IDL is as follows:
2090
2091         In order to support the [Supplemental] IDL, we need to
2092         (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
2093         (2) and run generate-bindings.pl with the supplemental_dependency.tmp.
2094
2095         This build flow requires a change on the following build scripts,
2096         but changing all the build scripts all at once without any regression is too difficult:
2097
2098             - DerivedSources.make
2099             - DerivedSources.pri
2100             - GNUmakefile.am
2101             - PlatformBlackBerry.cmake
2102             - UseJSC.cmake
2103             - UseV8.cmake
2104             - WebCore.vcproj/MigrateScripts
2105             - WebCore.vcproj/WebCore.vcproj
2106             - bindings/gobject/GNUmakefile.am
2107             - WebCore.gyp/WebCore.gyp
2108
2109         Thus, we are planning to change the build scripts one by one, which implies that
2110         we need to allow the temporary state in which some build scripts support [Supplemental] IDL
2111         but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
2112         The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
2113         in another IDL file somewhere, like this:
2114
2115             DOMWindowWebAudio.idl:
2116                 interface [
2117                     Supplemental=DOMWindow
2118                 ] DOMWindowWebAudio {
2119                     attribute attr1;
2120                     attribute attr2;
2121                 };
2122
2123             DOMWindow.idl:
2124                 interface [
2125                 ] DOMWindow {
2126                     attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
2127                     attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
2128                     attribute attr3;
2129                     attribute attr4;
2130                 };
2131
2132         Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:
2133
2134             - If a given build script supports the [Supplemental] IDL,
2135             generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
2136             - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
2137             as normal attributes and instead ignores all attributes with the [Supplemental] IDL
2138             (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).
2139
2140         Tests: webaudio/*
2141
2142         * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
2143         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
2144         (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp), which are described at the first column of each line in the input file.
2145         * WebCore.gypi: Added DOMWindowWebAudio.idl.
2146         * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and instead uses the [Supplemental] IDL.
2147         * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes. As I described above, the [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL.
2148         * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL. The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.
2149
2150 2011-12-01  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
2151
2152         Upstream credential storage files of BlackBerry porting
2153         https://bugs.webkit.org/show_bug.cgi?id=73280
2154
2155         Reviewed by Rob Buis.
2156
2157         Added the basic structure of class CredentialBackingStore
2158         to persist the credential data, and generated
2159         platform/network/blackberry/CredentialStorageBlackBerry.cpp,
2160         to implement CredentialStorage::getFromPersistentStorage
2161         for BlackBerry porting.
2162         Contributed by Torch Team.
2163
2164         * platform/network/blackberry/CredentialBackingStore.cpp: Added.
2165         (WebCore::CredentialBackingStore::instance):
2166         (WebCore::CredentialBackingStore::CredentialBackingStore):
2167         (WebCore::CredentialBackingStore::~CredentialBackingStore):
2168         (WebCore::CredentialBackingStore::open):
2169         (WebCore::CredentialBackingStore::close):
2170         (WebCore::CredentialBackingStore::addLogin):
2171         (WebCore::CredentialBackingStore::updateLogin):
2172         (WebCore::CredentialBackingStore::hasLogin):
2173         (WebCore::CredentialBackingStore::getLogin):
2174         (WebCore::CredentialBackingStore::removeLogin):
2175         (WebCore::CredentialBackingStore::clear):
2176         (WebCore::CredentialBackingStore::encryptedString):
2177         (WebCore::CredentialBackingStore::decryptedString):
2178         * platform/network/blackberry/CredentialBackingStore.h: Added.
2179         * platform/network/blackberry/CredentialStorageBlackBerry.cpp: Added.
2180         (WebCore::CredentialStorage::getFromPersistentStorage):
2181
2182 2011-11-30  Andreas Kling  <kling@webkit.org>
2183
2184         StyledElement: Tidy up copyNonAttributeProperties().
2185         <http://webkit.org/b/73501>
2186
2187         Reviewed by Antti Koivisto.
2188
2189         * css/CSSStyleDeclaration.h:
2190
2191             Made CSSStyleDeclaration non-copyable.
2192
2193         * css/CSSMutableStyleDeclaration.h:
2194         * css/CSSMutableStyleDeclaration.cpp:
2195         (WebCore::CSSMutableStyleDeclaration::copyPropertiesFrom):
2196
2197             copyPropertiesAndStrictnessFrom() redone as copyPropertiesFrom()
2198             since we can copy the strictness bit using existing accessors.
2199
2200         * dom/StyledElement.cpp:
2201         (WebCore::StyledElement::copyNonAttributeProperties):
2202
2203             Use copyPropertiesFrom() and copy the strictness bit to the new
2204             inline style using the dedicated accessors. Also added some
2205             assertions for good measure.
2206
2207 2011-12-01  Kentaro Hara  <haraken@chromium.org>
2208
2209         run-bindings-tests is failing on Gtk/Qt/SnowLeopard/Lion bots
2210         https://bugs.webkit.org/show_bug.cgi?id=73558
2211
2212         Reviewed by Csaba Osztrogonác.
2213
2214         The cause of the bug:
2215
2216         foreach my $idlFile (keys %documents) {
2217             $supplementals{$idlFile} = [];
2218             foreach my $dataNode (...) {
2219                 if (...) {
2220                     ...;
2221                     push(@{$supplementals{$targetIdlFile}}, $idlFile);
2222                     ...;
2223                 }
2224             }
2225         }
2226
2227         Even if we did push(@{$supplementals{$targetIdlFile}}, $idlFile),
2228         the $supplementals{$targetIdlFile} can be re-initialized by
2229         $supplementals{$idlFile} = [] in subsequent loops.
2230         This patch fixes the bug.
2231
2232         Tests: bindings/scripts/test/TestInterface.idl
2233
2234         * bindings/scripts/resolve-supplemental.pl:
2235
2236 2011-12-01  Pavel Feldman  <pfeldman@chromium.org>
2237
2238         Web Inspector: restore WebKit2 Safari menu items after capabilities refactoring regression.
2239         https://bugs.webkit.org/show_bug.cgi?id=73554
2240
2241         Reviewed by Yury Semikhatsky.
2242
2243         * inspector/InspectorFrontendClientLocal.cpp:
2244         (WebCore::InspectorFrontendClientLocal::frontendLoaded):
2245         (WebCore::InspectorFrontendClientLocal::isDebuggingEnabled):
2246         (WebCore::InspectorFrontendClientLocal::setDebuggingEnabled):
2247         (WebCore::InspectorFrontendClientLocal::isTimelineProfilingEnabled):
2248         (WebCore::InspectorFrontendClientLocal::setTimelineProfilingEnabled):
2249         (WebCore::InspectorFrontendClientLocal::isProfilingJavaScript):
2250         (WebCore::InspectorFrontendClientLocal::startProfilingJavaScript):
2251         (WebCore::InspectorFrontendClientLocal::stopProfilingJavaScript):
2252         (WebCore::InspectorFrontendClientLocal::showConsole):
2253         (WebCore::InspectorFrontendClientLocal::evaluateOnLoad):
2254         * inspector/InspectorFrontendClientLocal.h:
2255         * inspector/front-end/InspectorFrontendAPI.js:
2256         (InspectorFrontendAPI._pendingCommands.isDebuggingEnabled):
2257         (InspectorFrontendAPI.setDebuggingEnabled):
2258         (InspectorFrontendAPI.isTimelineProfilingEnabled):
2259         (InspectorFrontendAPI.setTimelineProfilingEnabled):
2260         (InspectorFrontendAPI.isProfilingJavaScript):
2261         (InspectorFrontendAPI.startProfilingJavaScript):
2262         (InspectorFrontendAPI.stopProfilingJavaScript):
2263         (InspectorFrontendAPI.setAttachedWindow):
2264         (InspectorFrontendAPI.showConsole):
2265         (InspectorFrontendAPI.dispatch):
2266         (InspectorFrontendAPI.loadCompleted):
2267         * inspector/front-end/inspector.js:
2268
2269 2011-12-01  Pavel Feldman  <pfeldman@google.com>
2270
2271         Web Inspector: remove capabilities along with the MetaAgent
2272         https://bugs.webkit.org/show_bug.cgi?id=73550
2273
2274         Reviewed by Yury Semikhatsky.
2275
2276         We are now using explicit query commands in order to find out about the capabilities.
2277
2278         * CMakeLists.txt:
2279         * GNUmakefile.list.am:
2280         * Target.pri:
2281         * WebCore.gypi:
2282         * WebCore.vcproj/WebCore.vcproj:
2283         * WebCore.xcodeproj/project.pbxproj:
2284         * inspector/CodeGeneratorInspector.py:
2285         (Generator.go):
2286         * inspector/Inspector.json:
2287         * inspector/InspectorController.cpp:
2288         (WebCore::InspectorController::InspectorController):
2289         * inspector/InspectorMetaAgent.cpp: Removed.
2290         * inspector/InspectorMetaAgent.h: Removed.
2291         * inspector/generate-protocol-externs:
2292
2293 2011-12-01  Pavel Feldman  <pfeldman@google.com>
2294
2295         Web Inspector: front-end should open with elements panel selected upon Inspect Element action.
2296         https://bugs.webkit.org/show_bug.cgi?id=73539
2297
2298         Reviewed by Yury Semikhatsky.
2299
2300         * inspector/front-end/inspector.js:
2301         (WebInspector.doLoadedDone.showInitialPanel):
2302         (WebInspector.inspect):
2303
2304 2011-11-30  Vsevolod Vlasov  <vsevik@chromium.org>
2305
2306         Web Inspector: totalOffsetLeft and totalOffsetTop should take scroll into account.
2307         https://bugs.webkit.org/show_bug.cgi?id=73443
2308
2309         Reviewed by Pavel Feldman.
2310
2311         * inspector/front-end/TextPrompt.js:
2312         (WebInspector.TextPrompt.prototype._boxForAnchorAtStart):
2313         (WebInspector.TextPrompt.SuggestBox):
2314         * inspector/front-end/utilities.js:
2315         (Element.prototype.totalOffsetLeft):
2316         (Element.prototype.totalOffsetTop):
2317         (Element.prototype.boxInWindow):
2318
2319 2011-12-01  Pavel Feldman  <pfeldman@google.com>
2320
2321         Web Inspector: query backend for capabilities explicitly.
2322         https://bugs.webkit.org/show_bug.cgi?id=73442
2323
2324         Reviewed by Yury Semikhatsky.
2325
2326         This change removes the hardcoded Capabilities values in favor of
2327         explicit query commands issued against the backend. I'll remove the
2328         Meta agent in a subsequent change.
2329
2330         * bindings/js/ScriptDebugServer.h:
2331         (WebCore::ScriptDebugServer::causesRecompilation):
2332         (WebCore::ScriptDebugServer::supportsNativeBreakpoints):
2333         * bindings/js/ScriptProfiler.h:
2334         (WebCore::ScriptProfiler::causesRecompilation):
2335         (WebCore::ScriptProfiler::isSampling):
2336         (WebCore::ScriptProfiler::hasHeapProfiler):
2337         * bindings/v8/ScriptDebugServer.h:
2338         (WebCore::ScriptDebugServer::causesRecompilation):
2339         (WebCore::ScriptDebugServer::supportsNativeBreakpoints):
2340         * bindings/v8/ScriptProfiler.h:
2341         (WebCore::ScriptProfiler::causesRecompilation):
2342         (WebCore::ScriptProfiler::isSampling):
2343         (WebCore::ScriptProfiler::hasHeapProfiler):
2344         * inspector/Inspector.json:
2345         * inspector/InspectorClient.h:
2346         (WebCore::InspectorClient::canClearBrowserCache):
2347         (WebCore::InspectorClient::canClearBrowserCookies):
2348         * inspector/InspectorController.cpp:
2349         (WebCore::InspectorController::InspectorController):
2350         (WebCore::InspectorController::connectFrontend):
2351         (WebCore::InspectorController::show):
2352         * inspector/InspectorController.h:
2353         * inspector/InspectorDebuggerAgent.cpp:
2354         (WebCore::InspectorDebuggerAgent::causesRecompilation):
2355         (WebCore::InspectorDebuggerAgent::canSetScriptSource):
2356         (WebCore::InspectorDebuggerAgent::supportsNativeBreakpoints):
2357         * inspector/InspectorDebuggerAgent.h:
2358         * inspector/InspectorFrontendClientLocal.cpp:
2359         (WebCore::InspectorFrontendClientLocal::frontendLoaded):
2360         * inspector/InspectorProfilerAgent.cpp:
2361         (WebCore::InspectorProfilerAgent::causesRecompilation):
2362         (WebCore::InspectorProfilerAgent::isSampling):
2363         (WebCore::InspectorProfilerAgent::hasHeapProfiler):
2364         (WebCore::InspectorProfilerAgent::disable):
2365         (WebCore::InspectorProfilerAgent::enable):
2366         (WebCore::InspectorProfilerAgent::setFrontend):
2367         * inspector/InspectorProfilerAgent.h:
2368         * inspector/InspectorResourceAgent.cpp:
2369         (WebCore::InspectorResourceAgent::canClearBrowserCache):
2370         (WebCore::InspectorResourceAgent::canClearBrowserCookies):
2371         * inspector/InspectorResourceAgent.h:
2372         * inspector/front-end/DebuggerModel.js:
2373         (WebInspector.DebuggerModel):
2374         (WebInspector.DebuggerModel.prototype.enableDebugger):
2375         (WebInspector.DebuggerModel.prototype.canSetScriptSource):
2376         * inspector/front-end/NetworkItemView.js:
2377         (WebInspector.NetworkItemView):
2378         * inspector/front-end/NetworkPanel.js:
2379         (WebInspector.NetworkLogView.onCanClearBrowserCache):
2380         (WebInspector.NetworkLogView.onCanClearBrowserCookies):
2381         (WebInspector.NetworkLogView):
2382         (WebInspector.NetworkLogView.prototype._contextMenu):
2383         * inspector/front-end/ProfilesPanel.js:
2384         (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
2385         * inspector/front-end/ScriptsPanel.js:
2386         * inspector/front-end/Settings.js:
2387         * inspector/front-end/SettingsScreen.js:
2388         (WebInspector.SettingsScreen):
2389         * inspector/front-end/inspector.js:
2390         (WebInspector.get inspectedPageDomain):
2391         (WebInspector._initializeCapability):
2392         (WebInspector.doLoadedDone):
2393
2394 2011-11-28  Hans Wennborg  <hans@chromium.org>
2395
2396         IndexedDB: Fix reverse cursor with non-existent upper bound
2397         https://bugs.webkit.org/show_bug.cgi?id=73220
2398
2399         Reviewed by Tony Chang.
2400
2401         The code previously did not properly handle the case where the
2402         specified upper bound for a reverse cursor did not exist.
2403
2404         Test: storage/indexeddb/cursor-reverse-bug.html
2405
2406         * storage/IDBLevelDBBackingStore.cpp:
2407         (WebCore::findGreatestKeyLessThanOrEqual):
2408         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
2409         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
2410         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
2411
2412 2011-11-29  Hans Wennborg  <hans@chromium.org>
2413
2414         IndexedDB: Cursor pre-fetching
2415         https://bugs.webkit.org/show_bug.cgi?id=73025
2416
2417         Reviewed by Darin Fisher.
2418
2419         No new tests. This doesn't change any semantics.
2420         Actual pre-fetching will not happen in DumpRenderTree.
2421         Chromium will request pre-fetching and have tests for it.
2422
2423         * storage/IDBBackingStore.h:
2424         * storage/IDBCallbacks.h:
2425         * storage/IDBCursor.cpp:
2426         (WebCore::IDBCursor::continueFunction):
2427         (WebCore::IDBCursor::postSuccessHandlerCallback):
2428           Adds a callback that is called everytime the onsuccess handler has
2429           executed on a cursor. This allows the cursor to see if a new call
2430           to continue() was made in the onsuccess handler.
2431         * storage/IDBCursor.h:
2432         * storage/IDBCursorBackendImpl.cpp:
2433         (WebCore::IDBCursorBackendImpl::continueFunction):
2434         (WebCore::IDBCursorBackendImpl::prefetchContinue):
2435         (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
2436           This is the function that does actual pre-fetching. When called,
2437           it will attempt to step the cursor up to n steps and send the
2438           results back via the new onSuccessWithPrefetch() callback.
2439         (WebCore::IDBCursorBackendImpl::prefetchReset):
2440           This resets the cursor to the position it was at before the last
2441           prefetch call.
2442         * storage/IDBCursorBackendImpl.h:
2443         (WebCore::IDBCursorBackendImpl::postSuccessHandlerCallback):
2444         * storage/IDBCursorBackendInterface.h:
2445         * storage/IDBKey.h:
2446         (WebCore::IDBKey::createInvalid):
2447         (WebCore::IDBKey::createNumber):
2448         (WebCore::IDBKey::createString):
2449         (WebCore::IDBKey::createDate):
2450         (WebCore::IDBKey::createArray):
2451         (WebCore::IDBKey::sizeEstimate):
2452         * storage/IDBLevelDBBackingStore.cpp:
2453         (WebCore::CursorOptions::CursorImplCommon::CursorImplCommon):
2454         (WebCore::CursorOptions::ObjectStoreCursorImpl::clone):
2455         (WebCore::CursorOptions::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
2456         (WebCore::CursorOptions::IndexKeyCursorImpl::clone):
2457         (WebCore::CursorOptions::IndexKeyCursorImpl::IndexKeyCursorImpl):
2458         (WebCore::CursorOptions::IndexCursorImpl::clone):
2459         (WebCore::CursorOptions::IndexCursorImpl::IndexCursorImpl):
2460         * storage/IDBRequest.cpp:
2461         (WebCore::IDBRequest::dispatchEvent):
2462           Update dispatchEvent() to call the postSuccessHandlerCallback()
2463         * storage/IDBRequest.h:
2464         (WebCore::IDBRequest::onSuccessWithPrefetch):
2465         * storage/IDBTransactionBackendImpl.cpp:
2466         (WebCore::IDBTransactionBackendImpl::addPendingEvents):
2467           Allow for adding an arbitrary number of extra pending events.
2468           When a cursor pre-fetches n elements, the transaction should
2469           expect to see n extra onsuccess calls.
2470         * storage/IDBTransactionBackendImpl.h:
2471         * storage/IDBTransactionBackendInterface.h:
2472
2473 2011-12-01  Philippe Normand  <pnormand@igalia.com>
2474
2475         [GTK] WebAudio wav resources access and management
2476         https://bugs.webkit.org/show_bug.cgi?id=73080
2477
2478         Reviewed by Martin Robinson.
2479
2480         For the uninstalled case we assume the user will set a
2481         AUDIO_RESOURCES_PATH environment variable pointing to
2482         WebCore/platform/audio/resources.
2483
2484         * GNUmakefile.am: Install WAV resources.
2485         * platform/audio/gtk/AudioBusGtk.cpp:
2486         (WebCore::AudioBus::loadPlatformResource): Support for loading
2487         uninstalled resources.
2488
2489 2011-12-01  Florin Malita  <fmalita@google.com>
2490
2491         SVG Gaussian blur in 1-dimension is incorrect
2492         https://bugs.webkit.org/show_bug.cgi?id=73029
2493
2494         Reviewed by Simon Fraser.
2495
2496         Ensure that the last blurBox result is stored when applying one-dimensional blurs.
2497
2498         * platform/graphics/filters/FEGaussianBlur.cpp:
2499         (WebCore::FEGaussianBlur::platformApplyGeneric):
2500
2501 2011-12-01  Vsevolod Vlasov  <vsevik@chromium.org>
2502
2503         Web Inspector: Elements Panel edit as html looks weird with an arrow inside edit box.
2504         https://bugs.webkit.org/show_bug.cgi?id=73462
2505
2506         Reviewed by Pavel Feldman.
2507
2508         * inspector/front-end/elementsPanel.css:
2509         (#elements-content .editing):
2510         (.elements-tree-editor):
2511         * inspector/front-end/inspector.css:
2512
2513 2011-12-01  Alexander Pavlov  <apavlov@chromium.org>
2514
2515         Web Inspector: [Styles] Exclamation mark hint ignores property case
2516         https://bugs.webkit.org/show_bug.cgi?id=73535
2517
2518         Reviewed by Pavel Feldman.
2519
2520         * inspector/front-end/StylesSidebarPane.js:
2521
2522 2011-12-01  Pavel Feldman  <pfeldman@google.com>
2523
2524         Web Inspector: fix dedicated workers inspection (undefined is not an object).
2525         https://bugs.webkit.org/show_bug.cgi?id=73537
2526
2527         Reviewed by Yury Semikhatsky.
2528
2529         * inspector/front-end/ResourceTreeModel.js:
2530         (WebInspector.ResourceTreeModel.prototype.resourceForURL):
2531         * inspector/front-end/WorkerManager.js:
2532         (WebInspector.WorkerManager.loadCompleted):
2533
2534 2011-12-01  Kentaro Hara  <haraken@chromium.org>
2535
2536         [JSC] When XXXX has a NamedConstructor, window.XXXX should be XXXXConstructor
2537         https://bugs.webkit.org/show_bug.cgi?id=73521
2538
2539         Reviewed by Adam Barth.
2540
2541         This is a regression caused by a patch of bug 73307.
2542         If we replaced a custom constructor of window.XXXX (e.g. XXXX is Audio or Option)
2543         with the [NamedConstructor] IDL, fast/js/global-constructors.html,
2544         fast/dom/Window/window-properties.html and fast/dom/call-a-constructor-as-a-function.html
2545         start to fail in JSC.
2546
2547         Before a patch of bug 73007: (correct behavior)
2548             window.Audio => AudioConstructor
2549             window.Option => OptionConstructor
2550             window.HTMLAudioElement => HTMLAudioElementConstructor
2551             window.HTMLOptionElement => HTMLOptionElementConstructor
2552
2553         After a patch of bug 73007: (wrong behavior)
2554             window.Audio => HTMLAudioElementConstructor
2555             window.Option => HTMLOptionElementConstructor
2556             window.HTMLAudioElement => HTMLAudioElementConstructor
2557             window.HTMLOptionElement => HTMLOptionElementConstructor
2558
2559         This patch fixes the above behavior.
2560
2561         Tests: bindings/scripts/test/TestNamedConstructor.idl
2562
2563         * bindings/scripts/CodeGeneratorJS.pm:
2564         (GenerateImplementation):
2565         * bindings/scripts/IDLParser.pm:
2566         (parseExtendedAttributes):
2567         (ParseInterface):
2568         * bindings/scripts/test/TestNamedConstructor.idl: The test IDL was wrong. NamedConstructor=XXXX(arguments) is a correct format.
2569         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Updated a run-bindings-tests result.
2570
2571 2011-11-30  David Grogan  <dgrogan@chromium.org>
2572
2573         Move data in IDBPendingTransactionMonitor from static to
2574         ThreadSpecific.
2575         https://bugs.webkit.org/show_bug.cgi?id=73389
2576
2577         IDBPendingTransactionMonitor previously stored transactions in
2578         a static member variable so that they could be aborted if they were
2579         had no work queued up when leaving script execution.  That was fine when
2580         IndexedDB could only be used on the main thread, but is insufficient
2581         for IndexedDB on workers.  In addition to not being thread-safe, this
2582         caused pending transactions that were created from a worker thread to
2583         abort when the main thread left script execution.
2584
2585         Reviewed by David Levin.
2586
2587         No new tests - IndexedDB worker tests forthcoming.
2588
2589         * storage/IDBPendingTransactionMonitor.cpp:
2590         (WebCore::transactions):  Create the TLS.  The other methods used to
2591         manage the container's memory lifetime but now we just leak it until
2592         the thread shuts down in the interest of simpler code.
2593         (WebCore::IDBPendingTransactionMonitor::addPendingTransaction):
2594         (WebCore::IDBPendingTransactionMonitor::removePendingTransaction):
2595         (WebCore::IDBPendingTransactionMonitor::abortPendingTransactions):
2596
2597         * storage/IDBPendingTransactionMonitor.h:
2598
2599 2011-11-30  Leo Yang  <leo.yang@torchmobile.com.cn>
2600
2601         Upstream platform/network/blackberry/NetworkStateNotifierBlackBerry.cpp
2602         https://bugs.webkit.org/show_bug.cgi?id=73522
2603
2604         Reviewed by Daniel Bates.
2605
2606         Initial upstream, can't be built yet, no new tests.
2607
2608         * platform/network/blackberry/NetworkStateNotifierBlackBerry.cpp: Added.
2609         (WebCore::NetworkStateNotifier::NetworkStateNotifier):
2610         (WebCore::NetworkStateNotifier::networkStateChange):
2611
2612 2011-11-30  David Reveman  <reveman@chromium.org>
2613
2614         [Chromium] Improve tile invalidation
2615         https://bugs.webkit.org/show_bug.cgi?id=71872
2616
2617         Reviewed by James Robinson.
2618
2619         Virtualize LayerChromium::setNeedsDisplay so that dirty rectangles can
2620         be handled directly by the TiledLayerChromium class. Replace
2621         LayerChromium::dirtyRect() with LayerChromium::needsDisplay() and
2622         remove unnecessary union of dirty rectangles. By invalidating existing
2623         tiles using the initial dirty rectangles instead of their union we
2624         avoid a large amount of unnecessary tile updates.
2625
2626         Update LayerChromiumTest.
2627
2628         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
2629         (WebCore::Canvas2DLayerChromium::updateCompositorResources):
2630         * platform/graphics/chromium/ContentLayerChromium.cpp:
2631         (WebCore::ContentLayerChromium::paintContentsIfDirty):
2632         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2633         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
2634         * platform/graphics/chromium/ImageLayerChromium.cpp:
2635         (WebCore::ImageLayerChromium::setContents):
2636         (WebCore::ImageLayerChromium::paintContentsIfDirty):
2637         * platform/graphics/chromium/LayerChromium.cpp:
2638         (WebCore::LayerChromium::LayerChromium):
2639         (WebCore::LayerChromium::setBounds):
2640         (WebCore::LayerChromium::setNeedsDisplayRect):
2641         * platform/graphics/chromium/LayerChromium.h:
2642         (WebCore::LayerChromium::setNeedsDisplay):
2643         (WebCore::LayerChromium::needsDisplay):
2644         * platform/graphics/chromium/TiledLayerChromium.cpp:
2645         (WebCore::TiledLayerChromium::setNeedsDisplayRect):
2646         (WebCore::TiledLayerChromium::invalidateRect):
2647         * platform/graphics/chromium/TiledLayerChromium.h:
2648         * platform/graphics/chromium/VideoLayerChromium.cpp:
2649         (WebCore::VideoLayerChromium::updateCompositorResources):
2650         * platform/graphics/chromium/WebGLLayerChromium.cpp:
2651         (WebCore::WebGLLayerChromium::updateCompositorResources):
2652
2653 2011-11-30  Alexey Proskuryakov  <ap@apple.com>
2654
2655         SocketStreamHandleCFNet doesn't check for proxy errors
2656         https://bugs.webkit.org/show_bug.cgi?id=71965
2657
2658         Reviewed by Darin Adler.
2659
2660         * platform/network/cf/SocketStreamHandleCFNet.cpp:
2661         (WebCore::getStoredCONNECTProxyCredentials): Added a FIXME about retrieving proxy credentials.
2662         (WebCore::SocketStreamHandle::addCONNECTCredentials): Added human readable messages to errors,
2663         they go to Web Inspector console.
2664         (WebCore::SocketStreamHandle::readStreamCallback): Handle proxy response codes other than 200
2665         and 407 by failing cleanly.
2666
2667 2011-11-30  Jeremy Apthorp  <jeremya@google.com>
2668
2669         When the mouse is dragged out of an :active element, it should lose :hover.
2670         https://bugs.webkit.org/show_bug.cgi?id=57206
2671
2672         Reviewed by Ryosuke Niwa.
2673
2674         Test: fast/css/hover-active-drag.html
2675
2676         * page/EventHandler.cpp:
2677         (WebCore::EventHandler::handleMouseMoveEvent): Don't mark mouse-drag hit tests read-only, since they no longer are.
2678         (WebCore::EventHandler::dragSourceEndedAt): Send a hit test request when the mouse goes up after a drag, so
2679         RenderLayer has a chance to update the hover/active status.
2680         * rendering/RenderLayer.cpp:
2681         (WebCore::RenderLayer::updateHoverActiveState): Only allow the :active state to change on mouse down or mouse up.
2682
2683 2011-11-30  Hans Muller  <hmuller@adobe.com>
2684
2685         XHR 'progress' event code assumes wrongly that expectedLength >= 0
2686         https://bugs.webkit.org/show_bug.cgi?id=36156
2687
2688         Reviewed by Alexey Proskuryakov
2689
2690         Avoid passing a negative value as the dispatchProgressEvent's total parameter and always use 0 when lengthComputable is false.
2691
2692         Test: http/tests/xmlhttprequest/chunked-progress-event-expectedLength.html
2693
2694         * xml/XMLHttpRequest.cpp:
2695         (WebCore::XMLHttpRequest::didReceiveData):
2696
2697 2011-11-30  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2698
2699         Unreviewed. Fix build error when NOTIFICATIONS feature is enabled.
2700
2701         * CMakeLists.txt:
2702
2703 2011-11-30  Noel Gordon  <noel.gordon@gmail.com>
2704
2705         Remove ImageFrame::setSize() style nits
2706         https://bugs.webkit.org/show_bug.cgi?id=73490
2707
2708         Reviewed by Andreas Kling.
2709
2710         Equality comparisons to 0 should be performed with the not operator, write
2711         width() == 0 && height() == 0 as !width() && !height().
2712
2713         No new tests, style refactor.
2714
2715         * platform/image-decoders/qt/ImageFrameQt.cpp:
2716         (WebCore::ImageFrame::setSize):
2717         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
2718         (WebCore::ImageFrame::setSize):
2719
2720 2011-11-30  Alexey Proskuryakov  <ap@apple.com>
2721
2722         Remove an unneeded argument from FrameLoaderClient::download
2723         https://bugs.webkit.org/show_bug.cgi?id=73486
2724
2725         Reviewed by Andreas Kling.
2726
2727         No change in functionality.
2728
2729         * loader/FrameLoaderClient.h: Removed initialRequest argument.
2730
2731         * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::continueAfterContentPolicy):
2732         We're already passing ResourceHandle, why also pass its data member?
2733
2734         * loader/EmptyClients.h: (WebCore::EmptyFrameLoaderClient::download): Updated for the change.
2735
2736 2011-11-30  Alexey Proskuryakov  <ap@apple.com>
2737
2738         Original page URL is not set in quarantine information when downloading using context menu Save Linked File
2739         https://bugs.webkit.org/show_bug.cgi?id=73475
2740         <rdar://problem/10500337>
2741
2742         Reviewed by Dan Bernstein.
2743
2744         * WebCore.exp.in: Exported FrameLoader::setOriginalURLForDownloadRequest.
2745
2746 2011-11-30  Mark Pilgrim  <pilgrim@chromium.org>
2747
2748         [FileSystem API] DirectoryEntry.getFile path argument is required
2749         https://bugs.webkit.org/show_bug.cgi?id=69642
2750
2751         Reviewed by Adam Barth.
2752
2753         Test: fast/filesystem/simple-required-arguments-getfile.html
2754
2755         * bindings/js/JSDirectoryEntryCustom.cpp:
2756         (WebCore::JSDirectoryEntry::getFile): check args length and throw TypeError if not enough arguments
2757         * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
2758         (WebCore::V8DirectoryEntry::getFileCallback): check args length and throw TypeError if not enough arguments
2759
2760 2011-11-30  Joshua Bell  <jsbell@chromium.org>
2761
2762         IndexedDB: Implement IDBIndex multientry feature
2763         https://bugs.webkit.org/show_bug.cgi?id=73232
2764
2765         Reviewed by Tony Chang.
2766
2767         The multientry flag is used when populating indexes, either when the index
2768         is created on an existing store or as new values are added to the store.
2769         Per the spec the semantics are: if the flag is set and the index key is
2770         calculated to be an array, each member of the array is used as an index key
2771         instead.
2772
2773         Test: storage/indexeddb/index-multientry.html
2774
2775         * storage/IDBBackingStore.h:
2776         * storage/IDBIndex.h:
2777         (WebCore::IDBIndex::multientry):
2778         * storage/IDBIndex.idl:
2779         * storage/IDBIndexBackendImpl.cpp:
2780         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
2781         * storage/IDBIndexBackendImpl.h:
2782         (WebCore::IDBIndexBackendImpl::create):
2783         (WebCore::IDBIndexBackendImpl::multientry):
2784         * storage/IDBIndexBackendInterface.h:
2785         * storage/IDBLevelDBBackingStore.cpp:
2786         (WebCore::checkIndexAndMetaDataKey):
2787         (WebCore::IDBLevelDBBackingStore::getIndexes):
2788         (WebCore::IDBLevelDBBackingStore::createIndex):
2789         * storage/IDBLevelDBBackingStore.h:
2790         * storage/IDBLevelDBCoding.cpp:
2791         * storage/IDBObjectStore.cpp:
2792         (WebCore::IDBObjectStore::createIndex):
2793         * storage/IDBObjectStoreBackendImpl.cpp:
2794         (WebCore::IDBObjectStoreBackendImpl::putInternal):
2795         (WebCore::IDBObjectStoreBackendImpl::populateIndex):
2796         (WebCore::IDBObjectStoreBackendImpl::createIndex):
2797         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
2798         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
2799         * storage/IDBObjectStoreBackendImpl.h:
2800         * storage/IDBObjectStoreBackendInterface.h:
2801
2802 2011-11-30  David Reveman  <reveman@chromium.org>
2803
2804         [Chromium] Add support for painting into an SkPicture and then rasterizing into tile-sized chunks.
2805         https://bugs.webkit.org/show_bug.cgi?id=71388
2806
2807         Reviewed by James Robinson.
2808
2809         Add UpdatableTexture class, which allows texture updater to
2810         allocate tile specific resources and paint tiles separately.
2811         Rename texture uploader classes and move them to separate files.
2812
2813         No new tests. Covered by existing tests.
2814
2815         * WebCore.gypi:
2816         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp: Added.
2817         (WebCore::BitmapCanvasLayerTextureUpdater::Texture::Texture):
2818         (WebCore::BitmapCanvasLayerTextureUpdater::Texture::~Texture):
2819         (WebCore::BitmapCanvasLayerTextureUpdater::Texture::updateRect):
2820         (WebCore::BitmapCanvasLayerTextureUpdater::create):
2821         (WebCore::BitmapCanvasLayerTextureUpdater::BitmapCanvasLayerTextureUpdater):
2822         (WebCore::BitmapCanvasLayerTextureUpdater::~BitmapCanvasLayerTextureUpdater):
2823         (WebCore::BitmapCanvasLayerTextureUpdater::createTexture):
2824         (WebCore::BitmapCanvasLayerTextureUpdater::sampledTexelFormat):
2825         (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
2826         (WebCore::BitmapCanvasLayerTextureUpdater::updateTextureRect):
2827         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h: Copied from Source/WebCore/platform/graphics/chromium/LayerTextureUpdater.h.
2828         (WebCore::BitmapCanvasLayerTextureUpdater::Texture::textureUpdater):
2829         (WebCore::BitmapCanvasLayerTextureUpdater::orientation):
2830         * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdater.h.
2831         (WebCore::CanvasLayerTextureUpdater::CanvasLayerTextureUpdater):
2832         (WebCore::CanvasLayerTextureUpdater::~CanvasLayerTextureUpdater):
2833         (WebCore::CanvasLayerTextureUpdater::paintContents):
2834         * platform/graphics/chromium/CanvasLayerTextureUpdater.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdater.h.
2835         (WebCore::CanvasLayerTextureUpdater::contentRect):
2836         * platform/graphics/chromium/ContentLayerChromium.cpp:
2837         (WebCore::ContentLayerChromium::createTextureUpdater):
2838         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp: Added.
2839         (WebCore::FrameBuffer::FrameBuffer::FrameBuffer):
2840         (WebCore::FrameBuffer::FrameBuffer::~FrameBuffer):
2841         (WebCore::FrameBuffer::FrameBuffer::initialize):
2842         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::Texture):
2843         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::~Texture):
2844         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
2845         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::create):
2846         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::FrameBufferSkPictureCanvasLayerTextureUpdater):
2847         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::~FrameBufferSkPictureCanvasLayerTextureUpdater):
2848         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::createTexture):
2849         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::sampledTexelFormat):
2850         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
2851         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h: Copied from Source/WebCore/platform/graphics/chromium/LayerTextureUpdater.h.
2852         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::textureUpdater):
2853         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::orientation):
2854         * platform/graphics/chromium/ImageLayerChromium.cpp:
2855         (WebCore::ImageLayerTextureUpdater::Texture::Texture):
2856         (WebCore::ImageLayerTextureUpdater::Texture::updateRect):
2857         (WebCore::ImageLayerTextureUpdater::Texture::textureUpdater):
2858         (WebCore::ImageLayerTextureUpdater::createTexture):
2859         * platform/graphics/chromium/LayerRendererChromium.cpp:
2860         * platform/graphics/chromium/LayerTextureUpdater.h:
2861         (WebCore::LayerTextureUpdater::Texture::~Texture):
2862         (WebCore::LayerTextureUpdater::Texture::texture):
2863         (WebCore::LayerTextureUpdater::Texture::prepareRect):
2864         (WebCore::LayerTextureUpdater::Texture::Texture):
2865         (WebCore::LayerTextureUpdater::prepareToUpdate):
2866         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp: Removed.
2867         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h: Removed.
2868         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdater.h.
2869         (WebCore::SkPictureCanvasLayerTextureUpdater::SkPictureCanvasLayerTextureUpdater):
2870         (WebCore::SkPictureCanvasLayerTextureUpdater::~SkPictureCanvasLayerTextureUpdater):
2871         (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
2872         (WebCore::SkPictureCanvasLayerTextureUpdater::drawPicture):
2873         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdater.h.
2874         * platform/graphics/chromium/TiledLayerChromium.cpp:
2875         (WebCore::UpdatableTile::UpdatableTile):
2876         (WebCore::UpdatableTile::texture):
2877         (WebCore::UpdatableTile::managedTexture):
2878         (WebCore::TiledLayerChromium::updateCompositorResources):
2879         (WebCore::TiledLayerChromium::pushPropertiesTo):
2880         (WebCore::TiledLayerChromium::createTile):
2881         (WebCore::TiledLayerChromium::protectTileTextures):
2882         (WebCore::TiledLayerChromium::prepareToUpdate):
2883         * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
2884         (WebCore::CCTextureUpdater::append):
2885         (WebCore::CCTextureUpdater::update):
2886         * platform/graphics/chromium/cc/CCTextureUpdater.h:
2887
2888 2011-11-30  Rafael Weinstein  <rafaelw@chromium.org>
2889
2890         [MutationObservers] Make WebKitMutationObserver::deliverAllMutations() tolerant of re-entrant calls
2891         https://bugs.webkit.org/show_bug.cgi?id=73472
2892
2893         Reviewed by Ojan Vafai.
2894
2895         No new tests. This patch just adds a static guard which makes more explicit the current semantics.
2896
2897         * dom/WebKitMutationObserver.cpp:
2898         (WebCore::WebKitMutationObserver::deliverAllMutations):
2899
2900 2011-11-30  Takashi Toyoshima  <toyoshim@chromium.org>
2901
2902         Add OVERRIDE to WebSocket related sources for safe inheritances.
2903         https://bugs.webkit.org/show_bug.cgi?id=73308
2904
2905         Reviewed by Kent Tamura.
2906
2907         No new tests because this change contains no functional change.
2908
2909         * platform/network/chromium/SocketStreamHandle.h:
2910         * websockets/CloseEvent.h:
2911         * websockets/WebSocket.h:
2912         * websockets/WebSocketChannel.h:
2913         * websockets/WorkerThreadableWebSocketChannel.h:
2914
2915 2011-11-30  Mihnea Ovidenie  <mihnea@adobe.com>
2916
2917         [CSSRegions]Rename CSSRegionStyleRule to WebKitCSSRegionRule
2918         https://bugs.webkit.org/show_bug.cgi?id=73450
2919
2920         Reviewed by Andreas Kling.
2921
2922         No functionality changed so no new tests. The new name has the webkit prefix as required for new api.
2923
2924         * CMakeLists.txt:
2925         * GNUmakefile.list.am:
2926         * Target.pri:
2927         * WebCore.gypi:
2928         * WebCore.vcproj/WebCore.vcproj:
2929         * WebCore.xcodeproj/project.pbxproj:
2930         * css/CSSParser.cpp:
2931         (WebCore::CSSParser::createRegionStylingRule):
2932         * css/CSSRule.cpp:
2933         (WebCore::CSSRule::cssText):
2934         (WebCore::CSSRule::destroy):
2935         * css/CSSStyleSelector.cpp:
2936         (WebCore::CSSStyleSelector::addRegionStyleRule):
2937         (WebCore::CSSStyleSelector::checkRegionStyle):
2938         (WebCore::RuleSet::addRulesFromSheet):
2939         * css/CSSStyleSelector.h:
2940         * css/WebKitCSSRegionRule.cpp: Renamed from Source/WebCore/css/CSSRegionStyleRule.cpp.
2941         (WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
2942         (WebCore::WebKitCSSRegionRule::~WebKitCSSRegionRule):
2943         (WebCore::WebKitCSSRegionRule::cssText):
2944         * css/WebKitCSSRegionRule.h: Renamed from Source/WebCore/css/CSSRegionStyleRule.h.
2945
2946 2011-11-30  Jeff Timanus  <twiz@chromium.org>
2947
2948         Alter an early return that was preventing HTMLCanvasElement::didDraw notifications
2949         from being triggered when accelerated compositing was enabled. The notification is
2950         necessary to make sure that any cached state is cleared in the HTMLCanvasElement object.
2951         To prevent performance regressions, the cached state is explicitly cleared, as the didDraw
2952         machinery is not necessary for accelerated canvases.
2953         https://bugs.webkit.org/show_bug.cgi?id=73257
2954
2955         Reviewed by Stephen White.
2956
2957         Test: fast/canvas/webgl/canvas-2d-webgl-texture.html
2958
2959         * html/HTMLCanvasElement.cpp:
2960         (WebCore::HTMLCanvasElement::didDraw):
2961         (WebCore::HTMLCanvasElement::setSurfaceSize):
2962         * html/canvas/CanvasRenderingContext2D.cpp:
2963         (WebCore::CanvasRenderingContext2D::didDraw):
2964
2965 2011-11-30  Kentaro Hara  <haraken@chromium.org>
2966
2967         Implement the StorageEvent constructor
2968         https://bugs.webkit.org/show_bug.cgi?id=71685
2969
2970         Reviewed by Adam Barth.
2971
2972         This patch makes StorageEvent constractable.
2973         The spec: http://www.whatwg.org/specs/web-apps/current-work/#storageevent
2974
2975         Test: fast/events/constructors/storage-event-constructor.html
2976
2977         * bindings/js/JSDictionary.cpp:
2978         (WebCore::JSDictionary::tryGetProperty):
2979         (WebCore::JSDictionary::convertValue): Returns a Storage object corresponding to a given key.
2980         * bindings/js/JSDictionary.h:
2981         (WebCore::JSDictionary::tryGetProperty):
2982         * bindings/v8/OptionsObject.cpp:
2983         (WebCore::OptionsObject::get): Ditto.
2984         * bindings/v8/OptionsObject.h:
2985         * storage/StorageEvent.cpp: Added an implementation of the StorageEvent constructor.
2986         (WebCore::StorageEventInit::StorageEventInit):
2987         (WebCore::StorageEvent::create):
2988         (WebCore::StorageEvent::StorageEvent):
2989         * storage/StorageEvent.h: Added a definition of StorageEventInit.
2990         (WebCore::StorageEvent::key):
2991         (WebCore::StorageEvent::oldValue):
2992         (WebCore::StorageEvent::newValue):
2993         (WebCore::StorageEvent::url):
2994         (WebCore::StorageEvent::storageArea):
2995         * storage/StorageEvent.idl: Added [ConstructorTemplate=Event] IDL.
2996
2997 2011-11-30  Naveen Bobbili  <qghc36@motorola.com>
2998
2999         window.getMatchedCSSRules() not supporting pseudo element
3000         https://bugs.webkit.org/show_bug.cgi?id=72930
3001
3002         Reviewed by Darin Adler.
3003
3004         Added functionality to retrieve CSS rules of psuedo elements using
3005         getMatchedCSSRules.
3006
3007         Test: fast/dom/Window/getMatchedCSSRules-with-pseudo-elements.html
3008
3009         * page/DOMWindow.cpp:
3010         (WebCore::DOMWindow::getMatchedCSSRules):
3011         Retreiving CSS Rules of the appropriate pseudo element.
3012
3013 2011-11-30  Grace Kloba  <klobag@chromium.org>
3014
3015         [chromium] TextureManager LRU list is not fully honor the order tiles are used
3016         https://bugs.webkit.org/show_bug.cgi?id=73344
3017
3018         Reviewed by James Robinson.
3019
3020         Reorder the texture in the LRU list only when protectTexture() is called.
3021
3022         * platform/graphics/chromium/TextureManager.cpp:
3023         (WebCore::TextureManager::hasTexture):
3024         (WebCore::TextureManager::protectTexture):
3025
3026 2011-11-30  Ken Buchanan <kenrb@chromium.org>
3027
3028         Crash from first letter text fragments having flows split
3029         https://bugs.webkit.org/show_bug.cgi?id=72759
3030
3031         Reviewed by David Hyatt.
3032
3033         When an inline flow is split that contains a first letter block
3034         and its remaining text, it can prevent the remaining text fragment
3035         from getting updated if the first letter block is replaced. This
3036         patch enables the text fragment to be found and updated properly.
3037
3038         * rendering/RenderBlock.cpp:
3039         (WebCore::RenderBlock::updateFirstLetterBlock):
3040
3041 2011-11-30  Takashi Toyoshima  <toyoshim@chromium.org>
3042
3043         Get rid of AllowCrossThreadAccess throughout ThreadableWebSocketChannelClientWrapper.
3044         https://bugs.webkit.org/show_bug.cgi?id=73336
3045
3046         Reviewed by David Levin.
3047
3048         No new tests because it contains no functional change.
3049
3050         * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
3051         (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
3052         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
3053         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
3054         (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
3055         (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
3056         (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
3057         (WebCore::ThreadableWebSocketChannelClientWrapper::didConnectCallback):
3058         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageCallback):
3059         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryDataCallback):
3060         (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmountCallback):
3061         (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshakeCallback):
3062         (WebCore::ThreadableWebSocketChannelClientWrapper::didCloseCallback):
3063         * websockets/ThreadableWebSocketChannelClientWrapper.h:
3064
3065 2011-11-30  Leo Yang  <leo.yang@torchmobile.com.cn>
3066
3067         [BlackBerry] Add 2 cpp files to the BlackBerry build system
3068         https://bugs.webkit.org/show_bug.cgi?id=73408
3069
3070         platform/network/blackberry/DeferredData.cpp and platform/network/blackberry/NetworkJob.cpp
3071         will be added, change build system first.
3072
3073         Reviewed by Antonio Gomes.
3074
3075         * PlatformBlackBerry.cmake:
3076
3077 2011-11-30  Gregg Tavares  <gman@google.com>
3078
3079         Implement draft WEBGL_compressed_textures WebGL extension
3080         https://bugs.webkit.org/show_bug.cgi?id=72086
3081
3082         Reviewed by Kenneth Russell.
3083
3084         No new tests. Will write final test once on hardware.
3085
3086         * CMakeLists.txt:
3087         * DerivedSources.make:
3088         * GNUmakefile.list.am:
3089         * Target.pri:
3090         * WebCore.gypi:
3091         * WebCore.xcodeproj/project.pbxproj:
3092         * bindings/js/JSWebGLRenderingContextCustom.cpp:
3093         (WebCore::toJS):
3094         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
3095         (WebCore::toV8Object):
3096         * html/canvas/WebGLCompressedTextures.cpp: Added.
3097         (WebCore::WebGLCompressedTextures::WebGLCompressedTextures):
3098         (WebCore::WebGLCompressedTextures::~WebGLCompressedTextures):
3099         (WebCore::WebGLCompressedTextures::getName):
3100         (WebCore::WebGLCompressedTextures::create):
3101         (WebCore::WebGLCompressedTextures::supported):
3102         (WebCore::WebGLCompressedTextures::validateCompressedTexFormat):
3103         (WebCore::WebGLCompressedTextures::validateCompressedTexFuncData):
3104         (WebCore::WebGLCompressedTextures::validateCompressedTexSubDimensions):
3105         (WebCore::WebGLCompressedTextures::compressedTexImage2D):
3106         (WebCore::WebGLCompressedTextures::compressedTexSubImage2D):
3107         (WebCore::WebGLCompressedTextures::getCompressedTextureFormats):
3108         * html/canvas/WebGLCompressedTextures.h: Added.
3109         * html/canvas/WebGLCompressedTextures.idl: Added.
3110         * html/canvas/WebGLExtension.h:
3111         * html/canvas/WebGLRenderingContext.cpp:
3112         (WebCore::WebGLRenderingContext::getExtension):
3113         (WebCore::WebGLRenderingContext::getParameter):
3114         (WebCore::WebGLRenderingContext::getSupportedExtensions):
3115         * html/canvas/WebGLRenderingContext.h:
3116         * platform/graphics/Extensions3D.h:
3117         * platform/graphics/GraphicsContext3D.h:
3118         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3119         (WebCore::GraphicsContext3D::compressedTexImage2D):
3120         (WebCore::GraphicsContext3D::compressedTexSubImage2D):
3121         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
3122         (WebCore::GraphicsContext3D::compressedTexImage2D):
3123         (WebCore::GraphicsContext3D::compressedTexSubImage2D):
3124         * platform/graphics/qt/GraphicsContext3DQt.cpp:
3125         (WebCore::GraphicsContext3D::compressedTexImage2D):
3126         (WebCore::GraphicsContext3D::compressedTexSubImage2D):
3127
3128 2011-11-18  Nat Duca  <nduca@chromium.org>
3129
3130         [chromium] Enable threaded compositing via CCThreadProxy::hasThread only
3131         https://bugs.webkit.org/show_bug.cgi?id=70838
3132
3133         Reviewed by James Robinson.
3134
3135         * platform/graphics/chromium/LayerRendererChromium.cpp:
3136         (WebCore::LayerRendererChromium::initialize):
3137         * platform/graphics/chromium/WebGLLayerChromium.cpp:
3138         (WebCore::WebGLLayerChromium::layerRendererContext):
3139         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
3140         (WebCore::CCHeadsUpDisplay::enabled):
3141         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3142         (WebCore::CCLayerTreeHost::initialize):
3143         (WebCore::CCLayerTreeHost::context):
3144         (WebCore::CCLayerTreeHost::setNeedsAnimate):
3145         (WebCore::CCLayerTreeHost::setNeedsCommit):
3146         (WebCore::CCLayerTreeHost::setNeedsRedraw):
3147         (WebCore::CCLayerTreeHost::composite):
3148         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3149         (WebCore::CCSettings::CCSettings):
3150         * platform/graphics/chromium/cc/CCProxy.cpp:
3151         (WebCore::CCProxy::isMainThread):
3152         (WebCore::CCProxy::isImplThread):
3153         (WebCore::CCProxy::setMainThreadIsImplThread):
3154         * platform/graphics/chromium/cc/CCProxy.h:
3155         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
3156         (WebCore::DebugScopedSetImplThread::DebugScopedSetImplThread):
3157         (WebCore::DebugScopedSetImplThread::~DebugScopedSetImplThread):
3158
3159 2011-11-30  Enrica Casucci  <enrica@apple.com>
3160
3161         Copy/paste of the same content produces increasingly nested markup
3162         https://bugs.webkit.org/show_bug.cgi?id=73497
3163         <rdar://problem/10208605>
3164         
3165         When pasting a fragment over a selection, we perfom a DeleteSelection command
3166         followed by a ReplaceSelection command. Delete selection preserves the style
3167         of the selection start, leaving all the blocks containing the insertion point.
3168         This patch eliminates all the nested divs that don't provide additional style,
3169         avoiding the proliferation of nested divs. 
3170
3171         Reviewed by Darin Adler.
3172
3173         Tests: editing/deleting/delete-and-cleanup.html
3174                editing/pasteboard/paste-without-nesting.html
3175
3176         * editing/DeleteSelectionCommand.cpp:
3177         (WebCore::DeleteSelectionCommand::removeRedundantBlocks):
3178         (WebCore::DeleteSelectionCommand::doApply):
3179         * editing/DeleteSelectionCommand.h:
3180
3181 2011-11-30  Dan Bernstein  <mitz@apple.com>
3182
3183         WebCore part of: Allow the length of a page along the pagination axis to differ from the length of the view
3184         https://bugs.webkit.org/show_bug.cgi?id=73476
3185
3186         Reviewed by Anders Carlsson.
3187
3188         * page/Page.cpp:
3189         (WebCore::Page::setPagination): Changed to use Pagination::operator==.
3190         * page/Page.h:
3191         (WebCore::Page::Pagination::Pagination): Added initializer for the new pageLength member variable.
3192         (WebCore::Page::Pagination::operator==): Added.
3193         * rendering/RenderBlock.cpp:
3194         (WebCore::RenderBlock::layoutColumns): Narrowed the scope of a local variable.
3195         * rendering/RenderBlock.h: Promoted setDesiredColumnCountAndWidth() from private to protected,
3196         allowing its use from RenderView::calcColumnWidth(). Made calcColumnWidth() virtual.
3197         * rendering/RenderView.cpp:
3198         (WebCore::RenderView::calcColumnWidth): Added. Uses the page length specified in the pagination
3199         parameters to set the column width, if pages are to be laid out one next to the other.
3200         (WebCore::RenderView::viewLogicalHeight): Added. Uses the page length specified in the pagination
3201         parameters as the height, if pages are to be laid out one after the other.
3202         * rendering/RenderView.h:
3203
3204 2011-11-30  Chris Fleizach  <cfleizach@apple.com>
3205
3206         AX: Nodes are reporting that focus can be set when they really can't
3207         https://bugs.webkit.org/show_bug.cgi?id=72791
3208
3209         Reviewed by Beth Dakin.
3210
3211         Whether focus can be set on a node shouldn't rely only on the role.
3212         It should depend on whether the node supports focus.
3213
3214         Test: platform/mac/accessibility/supports-focus-setting.html
3215
3216         * accessibility/AccessibilityRenderObject.cpp:
3217         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
3218
3219 2011-11-30  Chris Fleizach  <cfleizach@apple.com>
3220
3221         WebKit does not send mouse down/up/click events to ARIA tabs
3222         https://bugs.webkit.org/show_bug.cgi?id=72573
3223
3224         Reviewed by Darin Adler.
3225
3226         There are a number of "control" type elements that should perform a click on the actual element.
3227
3228         Test: accessibility/press-works-on-control-types.html
3229
3230         * accessibility/AccessibilityRenderObject.cpp:
3231         (WebCore::AccessibilityRenderObject::actionElement):
3232
3233 2011-11-30  Chris Fleizach  <cfleizach@apple.com>
3234
3235         AX: Searching mechanism is too slow when finding the element.
3236         https://bugs.webkit.org/show_bug.cgi?id=72523
3237
3238         Reviewed by Beth Dakin.
3239
3240         This makes the element searching mechanism much faster. Previously, searching literally went 
3241         through every element, looking for the start element before "starting" the search.
3242
3243         Now we only go through the elements that need to be searched. This is done by going up the 
3244         start object parent chain. At each level, a DFS is done. As we go up the parent chain, 
3245         only the elements before/after the current element are examined.
3246
3247         * accessibility/AccessibilityObject.cpp:
3248         (WebCore::appendChildrenToArray):
3249         (WebCore::AccessibilityObject::findMatchingObjects):
3250
3251 2011-11-30  Ryosuke Niwa  <rniwa@webkit.org>
3252
3253         Cannot select RTL text inside LTR text from right to left by a mouse drag
3254         https://bugs.webkit.org/show_bug.cgi?id=73056
3255
3256         Reviewed by Eric Seidel.
3257
3258         The bug was caused by positionAtRightBoundaryOfBiDiRun using current inline box's offset
3259         even when creating a position with previous inline box. Fixed the bug by using the correct offset.
3260
3261         * editing/RenderedPosition.cpp:
3262         (WebCore::RenderedPosition::positionAtLeftBoundaryOfBiDiRun):
3263         (WebCore::RenderedPosition::positionAtRightBoundaryOfBiDiRun):
3264
3265 2011-11-30 Chris Fleizach  <cfleizach@apple.com>
3266
3267         AX: Searching mechanism gets stuck when searching tables
3268         https://bugs.webkit.org/show_bug.cgi?id=72519
3269
3270         When searching through the elements within a data table, the children() method should not
3271         be used, since that contains elements (like a table header column) which have the same children
3272         as the table itself. Instead the cells() should be searched.
3273
3274         Reviewed by Beth Dakin.
3275
3276         Test: platform/mac/accessibility/search-when-element-starts-in-table.html
3277
3278         * accessibility/AccessibilityObject.cpp:
3279         (WebCore::AccessibilityObject::findMatchingObjects):
3280
3281 2011-11-29  Ryosuke Niwa  <rniwa@webkit.org>
3282
3283         Assertion failure (m_nestedIsolateCount >= 1) in BidiResolver::exitIsolate()
3284         https://bugs.webkit.org/show_bug.cgi?id=69267
3285
3286         Reviewed by Eric Seidel.
3287
3288         The failure was caused by our updating bidi resolver's current position in layoutRunsAndFloatsInRange
3289         without updating the number of nested isolated ancestors. Fixed the bug by computing the number of
3290         isolated ancestors when setting a new position to the bidi resolver.
3291
3292         Also renamed the existing BidiResolver::setPosition to setPositionIgnoringNestedIsolates because this
3293         version can be used only when we don't have to update the number of nested isolates.
3294
3295         Tests: fast/text/bidi-isolate-hang-with-neutral-expected.html
3296                fast/text/bidi-isolate-hang-with-neutral.html
3297                fast/text/bidi-isolate-nextlinebreak-failure.html
3298
3299         * platform/graphics/GraphicsContext.cpp:
3300         (WebCore::GraphicsContext::drawBidiText):
3301         * platform/text/BidiResolver.h:
3302         (WebCore::BidiResolver::setPositionIgnoringNestedIsolates):
3303         (WebCore::BidiResolver::setPosition):
3304         * rendering/InlineIterator.h:
3305         (WebCore::numberOfIsolateAncestors): Takes InlineIterator instead of object and root.
3306         (WebCore::InlineBidiResolver::appendRun):
3307         * rendering/RenderBlockLineLayout.cpp:
3308         (WebCore::constructBidiRuns):
3309         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
3310         (WebCore::RenderBlock::determineStartPosition):
3311
3312 2011-11-30  Brent Fulgham  <bfulgham@webkit.org>
3313
3314         [WinCairo] Correct SimpleFontData implementation to match Apple results.
3315         https://bugs.webkit.org/show_bug.cgi?id=73474
3316
3317         Reviewed by Adam Roben.
3318
3319         Tested by existing dom/xhtml/level3/core/nodegetbaseuri05.xhtml
3320         and dom/xhtml/level3/core/nodegetbaseuri07.xhtml
3321
3322         * platform/graphics/SimpleFontData.h: Add declaration for new
3323           'ascentConsideringMacAscentHack' method.
3324         * platform/graphics/win/SimpleFontDataCGWin.cpp: Remove implementation
3325           of 'platformCharWidthInit' (moved to SimpleFontDataWin.cpp). Also
3326           use new 'ascentConsideringMacAscentHack' method.
3327         * platform/graphics/win/SimpleFontDataCairoWin.cpp: Remove dummy
3328           implementation.
3329         (WebCore::SimpleFontData::platformInit): Add logic to handle the
3330           'shouldApplyMacAscentHack' case, as well as to identify system font
3331           using the same criteria as the Apple port.
3332         (WebCore::SimpleFontData::platformWidthForGlyph): Add check for
3333           missing font data state.
3334         * platform/graphics/win/SimpleFontDataWin.cpp:
3335         (WebCore::SimpleFontData::ascentConsideringMacAscentHack): New
3336         (WebCore::SimpleFontData::platformCharWidthInit): Moved from the
3337           CG implementation.
3338
3339 2011-11-30  David Levin  <levin@chromium.org>
3340
3341         Make FrameView use TemporarilyChange in a few places.
3342         https://bugs.webkit.org/show_bug.cgi?id=73403
3343
3344         Reviewed by Dmitry Titov.
3345
3346         No new functionality exposed so no new tests.
3347
3348         * page/FrameView.cpp:
3349         (WebCore::FrameView::forceLayoutParentViewIfNeeded): Since this function isn't
3350         re-entrant, TemporarilyChange does the same thing but in a more robust manner
3351         in case there would be a return added in the function.
3352         (WebCore::FrameView::layout): This place is the key reason for the change.
3353         layout is re-entrant, but layout will set m_layoutSchedulingEnabled to true when
3354         leaving though the "layout" function higher in the stack would still have it set
3355         to false (which works ok but is hit by another change I'm working on).
3356         The majority of the change is due to indenting the code to make m_layoutSchedulingEnabled
3357         and TemporarilyChange behave like they did before. A few variables were moved before
3358         the scoping to allow them to be used after the scope is closed.
3359         (WebCore::FrameView::setScrollPosition): TemporarilyChange does exactly what
3360         this code did before (saving the old value and restoring it).
3361
3362 2011-11-30  Alejandro G. Castro  <alex@igalia.com>
3363
3364         [GTK] Add TextureMapperCairo boilerplate implementation
3365         https://bugs.webkit.org/show_bug.cgi?id=73440
3366
3367         Add TextureMapperCairo class and TextureMapper classes compilation
3368         for GTK+.
3369
3370         Reviewed by Martin Robinson.
3371
3372         * GNUmakefile.am:
3373         * GNUmakefile.list.am:
3374         * platform/graphics/GraphicsContext3D.h:
3375         * platform/graphics/GraphicsLayer.cpp:
3376         * platform/graphics/GraphicsLayer.h:
3377         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
3378         (WebCore::GraphicsContext3D::platformLayer):
3379         * platform/graphics/cairo/TextureMapperCairo.cpp: Added.
3380         (WebCore::BitmapTextureCairo::destroy):
3381         (WebCore::BitmapTextureCairo::size):
3382         (WebCore::BitmapTextureCairo::reset):
3383         (WebCore::BitmapTextureCairo::beginPaint):
3384         (WebCore::BitmapTextureCairo::endPaint):
3385         (WebCore::BitmapTextureCairo::updateContents):
3386         (WebCore::BitmapTextureCairo::save):
3387         (WebCore::BitmapTextureCairo::setContentsToImage):
3388         (WebCore::TextureMapperCairo::beginClip):
3389         (WebCore::TextureMapperCairo::endClip):
3390         (WebCore::TextureMapperCairo::viewportSize):
3391         (WebCore::TextureMapperCairo::TextureMapperCairo):
3392         (WebCore::TextureMapperCairo::setGraphicsContext):
3393         (WebCore::TextureMapperCairo::graphicsContext):
3394         (WebCore::TextureMapperCairo::bindSurface):
3395         (WebCore::TextureMapperCairo::drawTexture):
3396         (WebCore::TextureMapper::create):
3397         (WebCore::TextureMapperCairo::createTexture):
3398         (WebCore::BitmapTextureCairo::BitmapTextureCairo):
3399         (WebCore::TextureMapperCairo::beginPainting):
3400         (WebCore::TextureMapperCairo::endPainting):
3401         * platform/graphics/cairo/TextureMapperCairo.h: Added.
3402         (WebCore::BitmapTextureCairo::~BitmapTextureCairo):
3403         (WebCore::BitmapTextureCairo::isValid):
3404         (WebCore::BitmapTextureCairo::sourceRect):
3405         (WebCore::BitmapTextureCairo::pack):
3406         (WebCore::BitmapTextureCairo::unpack):
3407         (WebCore::BitmapTextureCairo::isPacked):
3408         (WebCore::BitmapTextureCairo::cr):
3409         (WebCore::TextureMapperCairo::allowSurfaceForRoot):
3410         (WebCore::TextureMapperCairo::create):
3411
3412 2011-11-30  Tim Horton  <timothy_horton@apple.com>
3413
3414         Implement CSS3 Images cross-fade() image function
3415         https://bugs.webkit.org/show_bug.cgi?id=52162
3416         <rdar://problem/10209254>
3417
3418         Reviewed by Simon Fraser.
3419
3420         Fix platform layering violation by moving CachedImage invalidation code into
3421         CSSCrossfadeValue (instead of CrossfadeGeneratedImage).
3422
3423         No new tests.
3424
3425         * css/CSSCrossfadeValue.cpp:
3426         (WebCore::loadSubimage):
3427         (WebCore::CSSCrossfadeValue::~CSSCrossfadeValue):
3428         (WebCore::CSSCrossfadeValue::customCssText):
3429         (WebCore::CSSCrossfadeValue::fixedSize):