Merge MainResourceLoader into DocumentLoader
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-03-19  Nate Chapin  <japhet@chromium.org>
2
3         Merge MainResourceLoader into DocumentLoader
4         https://bugs.webkit.org/show_bug.cgi?id=104969
5
6         Reviewed by Adam Barth.
7
8         No new tests, refactor only.
9
10         * CMakeLists.txt:
11         * GNUmakefile.list.am:
12         * Target.pri:
13         * WebCore.exp.in:
14         * WebCore.gypi:
15         * WebCore.vcproj/WebCore.vcproj:
16         * WebCore.vcxproj/WebCore.vcxproj:
17         * WebCore.vcxproj/WebCore.vcxproj.filters:
18         * WebCore.xcodeproj/project.pbxproj:
19         * loader/DocumentLoader.cpp:
20         (WebCore::DocumentLoader::DocumentLoader):
21         (WebCore::DocumentLoader::mainResourceLoader):
22         (WebCore::DocumentLoader::~DocumentLoader): Move main resource clearing from
23             ~MainResourceLoader.
24         (WebCore::DocumentLoader::mainResourceData):
25         (WebCore::DocumentLoader::stopLoading):
26         (WebCore::DocumentLoader::notifyFinished): Moved from MainResourceLoader::notifyFinished.
27         (WebCore):
28         (WebCore::DocumentLoader::finishedLoading):
29         (WebCore::DocumentLoader::handleSubstituteDataLoadNow):
30         (WebCore::DocumentLoader::redirectReceived):
31         (WebCore::DocumentLoader::continueAfterNavigationPolicy):
32         (WebCore::DocumentLoader::responseReceived):
33         (WebCore::DocumentLoader::continueAfterContentPolicy):
34         (WebCore::DocumentLoader::reportMemoryUsage):
35         (WebCore::DocumentLoader::dataReceived):
36         (WebCore::DocumentLoader::clearMainResourceLoader):
37         (WebCore::DocumentLoader::setDefersLoading):
38         (WebCore::DocumentLoader::setMainResourceDataBufferingPolicy):
39         (WebCore::DocumentLoader::addSubresourceLoader):
40         (WebCore::DocumentLoader::maybeLoadEmpty):
41         (WebCore::DocumentLoader::startLoadingMainResource): Don't keep separate checks
42              for normal and empty loads, just use a single boolean.
43         * loader/DocumentLoader.h:
44         (WebCore::DocumentLoader::isLoadingMainResource):
45         * loader/MainResourceLoader.cpp: Removed.
46         * loader/MainResourceLoader.h: Removed.
47         * loader/mac/DocumentLoaderMac.cpp:
48         (WebCore::DocumentLoader::schedule):
49         (WebCore::DocumentLoader::unschedule):
50
51 2013-03-19  Ankur Taly  <ataly@google.com>
52
53         Cache a pointer to V8DOMActivityLogger in PerContextData.
54         https://bugs.webkit.org/show_bug.cgi?id=112719
55
56         Reviewed by Kentaro Hara.
57
58         Adds a data member (and getter, setter methods) to V8PerContextData
59         that holds a pointer to a V8DOMActivityLogger. This member is set while
60         initializing the context for a V8DOMWindowShell. Ownership of the pointer
61         is still retained by the HashMap in DOMWrapperWorld.
62         As a result of this patch, subsequent patches that will implement logging
63         for DOM API access (See bug 107207) will be able to obtain a reference to
64         the logger directly from PerContextData. This will benefit performance as it
65         will be faster than looking up the logger in the DOMActivityLoggerMap in
66         DOMWrapperWorld.
67
68         There are no new tests as there is no change in behavior.
69
70         * bindings/v8/V8DOMWindowShell.cpp:
71         (WebCore::V8DOMWindowShell::initializeIfNeeded):
72         * bindings/v8/V8PerContextData.h:
73         (WebCore::V8PerContextData::activityLogger):
74         (V8PerContextData):
75         (WebCore::V8PerContextData::setActivityLogger):
76
77 2013-03-19  Arnaud Renevier  <a.renevier@sisa.samsung.com>
78
79         do not use string reference for enum support in CodeGeneratorJS.pm
80         https://bugs.webkit.org/show_bug.cgi?id=112760
81
82         Reviewed by Kentaro Hara.
83
84         Do use string references in generated JS bindings for enum values.
85
86         Test: bindings/scripts/test/TestObj.idl
87
88         * bindings/scripts/CodeGeneratorJS.pm:
89         (GenerateImplementation):
90         (GenerateParametersCheck):
91         * bindings/scripts/test/JS/JSTestObj.cpp:
92         (WebCore::setJSTestObjEnumAttr):
93         (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
94
95 2013-03-19  Simon Fraser  <simon.fraser@apple.com>
96
97         Make RLC::haveNonMainLayersWithTiledBacking() public and fix the name
98         https://bugs.webkit.org/show_bug.cgi?id=112763
99
100         Reviewed by Tim Horton.
101
102         Downstream code needs to call hasNonMainLayersWithTiledBacking().
103
104         * rendering/RenderLayerCompositor.h:
105         (WebCore::RenderLayerCompositor::hasNonMainLayersWithTiledBacking):
106         (RenderLayerCompositor):
107
108 2013-03-19  David Levin  <levin@chromium.org>
109
110         FrameLoader::didChangeIcons isn't called when the favicon is changed.
111         https://bugs.webkit.org/show_bug.cgi?id=112080
112
113         Reviewed by Dmitry Titov.
114
115         Test: fast/dom/icon-url-property.html
116
117         * dom/Document.cpp:
118         (WebCore::Document::addIconURL): Made the callback for didChangeIcons
119         happen whenever there are favicon changes instead of filtering it
120         and have to be in sync about what hosts care about. As far as I could
121         tell no hosts rely on this callback except for Chromium, so in general
122         doing less work here may potentially help a small amount for other
123         ports.
124
125 2013-03-19  Michael Pruett  <michael@68k.org>
126
127         Don't throw on infinity or NaN index in HTMLOptionsCollection.add()
128         https://bugs.webkit.org/show_bug.cgi?id=112612
129
130         Reviewed by Kentaro Hara.
131
132         HTMLOptionsCollection.add() should not throw a type error when
133         its optional index argument is infinity or NaN. Such values
134         should instead be converted to 0 with no error.
135
136         Tests: fast/dom/non-numeric-values-numeric-parameters.html
137                fast/js/select-options-add.html
138
139         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
140         (WebCore::JSHTMLOptionsCollection::add):
141
142 2013-03-19  Dominic Mazzoni  <dmazzoni@google.com>
143
144         Security: Heap-use-after-free in WebCore::AXObjectCache::getOrCreate
145         https://bugs.webkit.org/show_bug.cgi?id=112044
146
147         Reviewed by Chris Fleizach.
148
149         Always call recalcSectionsIfNeeded before accessing
150         table sections.
151
152         Test: accessibility/table-remove-cell-crash.html
153
154         * accessibility/AccessibilityTable.cpp:
155         (WebCore::AccessibilityTable::addChildren):
156
157 2013-03-19  Arnaud Renevier  <a.renevier@sisa.samsung.com>
158
159         [v8] add IDL 'enum' in DOM methods
160         https://bugs.webkit.org/show_bug.cgi?id=112644
161
162         Reviewed by Kentaro Hara.
163
164         This adds V8 support for enumerations in method parameters.
165
166         Test: bindings/scripts/test/TestObj.idl
167
168         * bindings/scripts/CodeGeneratorV8.pm:
169         (GenerateParametersCheck):
170         * bindings/scripts/test/V8/V8TestObj.cpp:
171         (WebCore::TestObjV8Internal::methodWithEnumArgMethod):
172
173 2013-03-19  Kenneth Russell  <kbr@google.com>
174
175         Unreviewed, rolling out r146277.
176         http://trac.webkit.org/changeset/146277
177         https://bugs.webkit.org/show_bug.cgi?id=111695
178
179         Broke Chromium Android build
180
181         * Modules/speech/SpeechSynthesis.cpp:
182         (WebCore::SpeechSynthesis::boundaryEventOccurred):
183         (WebCore::SpeechSynthesis::didStartSpeaking):
184         (WebCore::SpeechSynthesis::didPauseSpeaking):
185         (WebCore::SpeechSynthesis::didResumeSpeaking):
186         (WebCore::SpeechSynthesis::didFinishSpeaking):
187         (WebCore::SpeechSynthesis::speakingErrorOccurred):
188         (WebCore):
189         * Modules/speech/SpeechSynthesis.h:
190         (SpeechSynthesis):
191         * Modules/speech/SpeechSynthesisUtterance.cpp:
192         (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
193         (WebCore::SpeechSynthesisUtterance::setVoice):
194         * Modules/speech/SpeechSynthesisUtterance.h:
195         (WebCore::SpeechSynthesisUtterance::text):
196         (WebCore::SpeechSynthesisUtterance::setText):
197         (WebCore::SpeechSynthesisUtterance::lang):
198         (WebCore::SpeechSynthesisUtterance::setLang):
199         (WebCore::SpeechSynthesisUtterance::volume):
200         (WebCore::SpeechSynthesisUtterance::setVolume):
201         (WebCore::SpeechSynthesisUtterance::rate):
202         (WebCore::SpeechSynthesisUtterance::setRate):
203         (WebCore::SpeechSynthesisUtterance::pitch):
204         (WebCore::SpeechSynthesisUtterance::setPitch):
205         (WebCore::SpeechSynthesisUtterance::startTime):
206         (WebCore::SpeechSynthesisUtterance::setStartTime):
207         (WebCore::SpeechSynthesisUtterance::platformUtterance):
208         (SpeechSynthesisUtterance):
209         * Modules/speech/SpeechSynthesisVoice.h:
210         * WebCore.exp.in:
211         * WebCore.gypi:
212         * platform/PlatformSpeechSynthesis.h:
213         (PlatformSpeechSynthesis):
214         * platform/PlatformSpeechSynthesisUtterance.cpp:
215         * platform/PlatformSpeechSynthesisUtterance.h:
216         (PlatformSpeechSynthesisUtterance):
217         * platform/PlatformSpeechSynthesisVoice.cpp:
218         (WebCore::PlatformSpeechSynthesisVoice::create):
219         * platform/PlatformSpeechSynthesisVoice.h:
220         (PlatformSpeechSynthesisVoice):
221         * platform/PlatformSpeechSynthesizer.cpp:
222         (WebCore::PlatformSpeechSynthesizer::create):
223         (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
224         (WebCore):
225         * platform/PlatformSpeechSynthesizer.h:
226         (PlatformSpeechSynthesizerClient):
227         (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
228         (PlatformSpeechSynthesizer):
229         * platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Removed.
230         * platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Removed.
231         * platform/chromium/support/WebSpeechSynthesisVoice.cpp: Removed.
232         * platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Removed.
233         * platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Removed.
234         * platform/mac/PlatformSpeechSynthesizerMac.mm:
235         (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
236         (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
237         (WebCore::PlatformSpeechSynthesizer::speak):
238         * platform/mock/PlatformSpeechSynthesizerMock.cpp:
239         (WebCore::PlatformSpeechSynthesizerMock::create):
240         (WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
241         (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
242         (WebCore::PlatformSpeechSynthesizerMock::speak):
243         * platform/mock/PlatformSpeechSynthesizerMock.h:
244         (PlatformSpeechSynthesizerMock):
245
246 2013-03-19  Antti Koivisto  <antti@apple.com>
247
248         Don't compute background obscuration on every repaint
249         https://bugs.webkit.org/show_bug.cgi?id=112457
250
251         Reviewed by Simon Fraser.
252
253         Test: fast/backgrounds/obscured-background-child-style-change.html
254         
255         It is generally enough to compute background obscuration status once per layout rather than doing it on every repaint.
256         Since there are fewer layouts than repaints this will allow more expensive checks in the future.
257         
258         With this patch adds caching and invalidation of the obscuration status.
259
260         * rendering/RenderBlock.cpp:
261         (WebCore::RenderBlock::layout):
262         
263             Invalidate the obscuration status on layout.
264
265         * rendering/RenderBox.cpp:
266         (WebCore::RenderBox::styleDidChange):
267         
268             Invalidate the parent obscuration status if there is repaint-only style change (often background related). 
269             Tested by the new fast/css/obscured-background-child-style-change.html.
270
271         (WebCore::RenderBox::layout):
272         (WebCore::RenderBox::computeBackgroundIsKnownToBeObscured):
273         * rendering/RenderBox.h:
274         * rendering/RenderImage.cpp:
275         (WebCore::RenderImage::imageChanged):
276         (WebCore::RenderImage::notifyFinished):
277         (WebCore::RenderImage::boxShadowShouldBeAppliedToBackground):
278         (WebCore::RenderImage::computeBackgroundIsKnownToBeObscured):
279         
280             Use CachedImage::currentFrameKnownToBeOpaque which ensures that the frame is decoded and we get the real status.
281             Tested by an additional case in fast/css/obscured-background-child-style-change.html.
282
283         * rendering/RenderImage.h:
284         * rendering/RenderObject.cpp:
285         (WebCore::RenderObject::styleWillChange):
286         * rendering/RenderObject.h:
287         (WebCore::RenderObject::hasBoxDecorations):
288         (WebCore::RenderObject::computeBackgroundIsKnownToBeObscured):
289         (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
290         (RenderObjectBitfields):
291         (WebCore::RenderObject::RenderObjectBitfields::boxDecorationState):
292         (WebCore::RenderObject::RenderObjectBitfields::setBoxDecorationState):
293         
294             Combine box decoration bit and the obscuration status so we only need one extra bit.
295
296         (WebCore::RenderObject::setNeedsSimplifiedNormalFlowLayout):
297         (WebCore::RenderObject::setHasBoxDecorations):
298         (WebCore::RenderObject::invalidateBackgroundObscurationStatus):
299         (WebCore::RenderObject::backgroundIsKnownToBeObscured):
300         * rendering/RenderReplaced.cpp:
301         (WebCore::RenderReplaced::layout):
302
303 2013-03-19  Dominic Mazzoni  <dmazzoni@google.com>
304
305         Implement Web Speech Synthesis for Chromium
306         https://bugs.webkit.org/show_bug.cgi?id=111695
307
308         Reviewed by Adam Barth.
309
310         Straightforward implementation of speech synthesis
311         for Chromium by exposing interfaces for the platform
312         to implement.
313
314         * Modules/speech/SpeechSynthesis.cpp:
315         (WebCore::SpeechSynthesis::boundaryEventOccurred):
316         (WebCore::SpeechSynthesis::didStartSpeaking):
317         (WebCore::SpeechSynthesis::didPauseSpeaking):
318         (WebCore::SpeechSynthesis::didResumeSpeaking):
319         (WebCore::SpeechSynthesis::didFinishSpeaking):
320         (WebCore::SpeechSynthesis::speakingErrorOccurred):
321         (WebCore):
322         * Modules/speech/SpeechSynthesis.h:
323         (SpeechSynthesis):
324         * Modules/speech/SpeechSynthesisUtterance.cpp:
325         (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
326         (WebCore):
327         (WebCore::SpeechSynthesisUtterance::~SpeechSynthesisUtterance):
328         (WebCore::SpeechSynthesisUtterance::setVoice):
329         * Modules/speech/SpeechSynthesisUtterance.h:
330         (SpeechSynthesisUtterance):
331         (WebCore::SpeechSynthesisUtterance::text):
332         (WebCore::SpeechSynthesisUtterance::setText):
333         (WebCore::SpeechSynthesisUtterance::lang):
334         (WebCore::SpeechSynthesisUtterance::setLang):
335         (WebCore::SpeechSynthesisUtterance::volume):
336         (WebCore::SpeechSynthesisUtterance::setVolume):
337         (WebCore::SpeechSynthesisUtterance::rate):
338         (WebCore::SpeechSynthesisUtterance::setRate):
339         (WebCore::SpeechSynthesisUtterance::pitch):
340         (WebCore::SpeechSynthesisUtterance::setPitch):
341         (WebCore::SpeechSynthesisUtterance::startTime):
342         (WebCore::SpeechSynthesisUtterance::setStartTime):
343         (WebCore::SpeechSynthesisUtterance::platformUtterance):
344         * Modules/speech/SpeechSynthesisVoice.h:
345         (WebCore::SpeechSynthesisVoice::~SpeechSynthesisVoice):
346         * WebCore.exp.in:
347         * WebCore.gypi:
348         * platform/PlatformSpeechSynthesis.h:
349         (PlatformSpeechSynthesis):
350         * platform/PlatformSpeechSynthesisUtterance.cpp:
351         (WebCore):
352         (WebCore::PlatformSpeechSynthesisUtterance::create):
353         * platform/PlatformSpeechSynthesisUtterance.h:
354         (PlatformSpeechSynthesisUtterance):
355         (WebCore::PlatformSpeechSynthesisUtterance::setClient):
356         * platform/PlatformSpeechSynthesisVoice.cpp:
357         (WebCore):
358         (WebCore::PlatformSpeechSynthesisVoice::create):
359         (WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
360         * platform/PlatformSpeechSynthesisVoice.h:
361         (PlatformSpeechSynthesisVoice):
362         (WebCore::PlatformSpeechSynthesisVoice::setVoiceURI):
363         (WebCore::PlatformSpeechSynthesisVoice::setName):
364         (WebCore::PlatformSpeechSynthesisVoice::setLang):
365         (WebCore::PlatformSpeechSynthesisVoice::setLocalService):
366         (WebCore::PlatformSpeechSynthesisVoice::setIsDefault):
367         * platform/PlatformSpeechSynthesizer.cpp:
368         (WebCore::PlatformSpeechSynthesizer::create):
369         (WebCore::PlatformSpeechSynthesizer::setVoiceList):
370         (WebCore):
371         * platform/PlatformSpeechSynthesizer.h:
372         (WebKit):
373         (PlatformSpeechSynthesizerClient):
374         (PlatformSpeechSynthesizer):
375         * platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Added.
376         (WebCore):
377         (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
378         (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
379         (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
380         (WebCore::PlatformSpeechSynthesizer::speak):
381         (WebCore::PlatformSpeechSynthesizer::pause):
382         (WebCore::PlatformSpeechSynthesizer::resume):
383         (WebCore::PlatformSpeechSynthesizer::cancel):
384         * platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Added.
385         (WebKit):
386         (WebKit::WebSpeechSynthesisUtterance::WebSpeechSynthesisUtterance):
387         (WebKit::WebSpeechSynthesisUtterance::operator=):
388         (WebKit::WebSpeechSynthesisUtterance::assign):
389         (WebKit::WebSpeechSynthesisUtterance::reset):
390         (WebKit::WebSpeechSynthesisUtterance::operator PassRefPtr<PlatformSpeechSynthesisUtterance>):
391         (WebKit::WebSpeechSynthesisUtterance::operator PlatformSpeechSynthesisUtterance*):
392         (WebKit::WebSpeechSynthesisUtterance::text):
393         (WebKit::WebSpeechSynthesisUtterance::lang):
394         (WebKit::WebSpeechSynthesisUtterance::voice):
395         (WebKit::WebSpeechSynthesisUtterance::volume):
396         (WebKit::WebSpeechSynthesisUtterance::rate):
397         (WebKit::WebSpeechSynthesisUtterance::pitch):
398         (WebKit::WebSpeechSynthesisUtterance::startTime):
399         * platform/chromium/support/WebSpeechSynthesisVoice.cpp: Added.
400         (WebKit):
401         (WebKit::WebSpeechSynthesisVoice::assign):
402         (WebKit::WebSpeechSynthesisVoice::reset):
403         (WebKit::WebSpeechSynthesisVoice::setVoiceURI):
404         (WebKit::WebSpeechSynthesisVoice::setName):
405         (WebKit::WebSpeechSynthesisVoice::setLanguage):
406         (WebKit::WebSpeechSynthesisVoice::setIsLocalService):
407         (WebKit::WebSpeechSynthesisVoice::setIsDefault):
408         (WebKit::WebSpeechSynthesisVoice::operator PassRefPtr<WebCore::PlatformSpeechSynthesisVoice>):
409         * platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Added.
410         (WebCore):
411         (WebCore::WebSpeechSynthesizerClientImpl::WebSpeechSynthesizerClientImpl):
412         (WebCore::WebSpeechSynthesizerClientImpl::~WebSpeechSynthesizerClientImpl):
413         (WebCore::WebSpeechSynthesizerClientImpl::setVoiceList):
414         (WebCore::WebSpeechSynthesizerClientImpl::didStartSpeaking):
415         (WebCore::WebSpeechSynthesizerClientImpl::didFinishSpeaking):
416         (WebCore::WebSpeechSynthesizerClientImpl::didPauseSpeaking):
417         (WebCore::WebSpeechSynthesizerClientImpl::didResumeSpeaking):
418         (WebCore::WebSpeechSynthesizerClientImpl::speakingErrorOccurred):
419         (WebCore::WebSpeechSynthesizerClientImpl::wordBoundaryEventOccurred):
420         (WebCore::WebSpeechSynthesizerClientImpl::sentenceBoundaryEventOccurred):
421         * platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Added.
422         (WebCore):
423         (WebSpeechSynthesizerClientImpl):
424         * platform/mac/PlatformSpeechSynthesizerMac.mm:
425         (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
426         (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
427         (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
428         (WebCore):
429         (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
430         (WebCore::PlatformSpeechSynthesizer::speak):
431         * platform/mock/PlatformSpeechSynthesizerMock.cpp:
432         (WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
433         (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
434         (WebCore::PlatformSpeechSynthesizerMock::speak):
435         * platform/mock/PlatformSpeechSynthesizerMock.h:
436         (PlatformSpeechSynthesizerMock):
437
438 2013-03-19  Ryosuke Niwa  <rniwa@webkit.org>
439
440         Another build fix after r146220.
441
442         * English.lproj/localizedStrings.js:
443
444 2013-03-19  Julien Chaffraix  <jchaffraix@webkit.org>
445
446         [CSS Grid Layout] Add parsing for grid-auto-{row|column}
447         https://bugs.webkit.org/show_bug.cgi?id=112724
448
449         Reviewed by Tony Chang.
450
451         This change is a first step towards handling grid-auto-{row|column}.
452         For now, only the parsing, storing and getComputedStyle bits are implemented.
453         In order to do so without duplicating code, the functions handling <track-size>
454         (named <track-minmax> in the code based on a previous version of the grammar)
455         have been tweaked to be called in a standalone fashion. The code was also
456         updated to match the grammar more closely:
457         - <track-minmax> is now <track-size>.
458         - <track-group> was renmoved, folded into <track-list>.
459
460         Test: fast/css-grid-layout/grid-auto-columns-rows-get-set.html
461
462         * css/CSSComputedStyleDeclaration.cpp:
463         (WebCore::valueForGridTrackSize):
464         Renamed from valueForGridTrackMinMax.
465
466         (WebCore::valueForGridTrackList):
467         Folded valueForGridTrackGroup here.
468
469         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
470         * css/CSSParser.cpp:
471         (WebCore::CSSParser::parseValue):
472         Added the parsing for grid-auto-{rows|columns}.
473
474         (WebCore::CSSParser::parseGridTrackSize):
475         Renamed from parseGridTrackMinMax. Changed to return the parsed value (or 0 in case of
476         error). This enables us to reuse it in parseValue. Note that this function now moves
477         the parser value list instead of the caller.
478
479         (WebCore::CSSParser::parseGridTrackList):
480         Updated after parseGridTrackSize changes and parseGridTrackGroup removal.
481
482         * css/CSSParser.h: Updated the names.
483         * css/CSSProperty.cpp:
484         (WebCore::CSSProperty::isInheritedProperty):
485         * css/CSSPropertyNames.in:
486         Added the 2 new non-inherited properties.
487
488         * css/StyleResolver.cpp:
489         (WebCore::createGridTrackSize):
490         Renamed from createGridTrackMinMax. Also simplified to ensure code reuse (applyProperty hands
491         down a CSSValue) and consistency (the state wasn't consistently the last argument).
492
493         (WebCore::createGridTrackList):
494         Folded createGridTrackGroup into this function.
495
496         (WebCore::StyleResolver::applyProperty):
497         Added the code for the new properties.
498
499         * rendering/style/RenderStyle.h:
500         * rendering/style/StyleGridData.cpp:
501         (WebCore::StyleGridData::StyleGridData):
502         * rendering/style/StyleGridData.h:
503         (WebCore::StyleGridData::operator==):
504         Added the storage and boiler-plate code for the new properties.
505
506 2013-03-19  Geoffrey Garen  <ggaren@apple.com>
507
508         Removed a using declaration to avoid name conflicts
509         https://bugs.webkit.org/show_bug.cgi?id=112752
510
511         Reviewed by Ryosuke Niwa.
512
513         * html/ClassList.cpp: Put the using declaration here instead.
514
515         * html/ClassList.h: Don't put a using declaration in this header because
516         it can cause name conflicts with SVGNames.
517
518 2013-03-18  Ojan Vafai  <ojan@chromium.org>
519
520         Make intrinsic size keywords on flexboxes work
521         https://bugs.webkit.org/show_bug.cgi?id=112652
522
523         Reviewed by Tony Chang.
524
525         Tests: fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items.html
526                fast/css-intrinsic-dimensions/intrinsic-sized-flex-items.html
527
528         * platform/Length.h:
529         (WebCore::Length::isSpecifiedOrIntrinsic):
530         * rendering/RenderBox.cpp:
531         (WebCore::RenderBox::constrainLogicalWidthInRegionByMinMax):
532         (WebCore::RenderBox::computeLogicalWidthInRegion):
533         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
534         Pass in the Length so that RenderFlexibleBox can call this method and avoid
535         doing a bunch of code duplication.
536
537         * rendering/RenderBox.h:
538         * rendering/RenderFlexibleBox.cpp:
539         (WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
540         Instead of just calling valueForLength, call computeLogicalWidthInRegionUsing so that
541         we properly resolve intrinsic Length types. Incidentally, this should also make viewport
542         percentage units work.
543
544         (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
545         Resolve intrinsic min/max Lengths. Also, instead of calling minPreferredLogicalWidth for the
546         min-width: auto case, call computeMainAxisExtentForChild to correctly compute the min intrinsic size.
547
548 2013-03-19  Geoffrey Garen  <ggaren@apple.com>
549
550         Try to fix the Windows build.
551
552         * svg/SVGAnimateMotionElement.cpp:
553         (WebCore::SVGAnimateMotionElement::hasValidAttributeType): Qualify the
554         namespace to avoid conflicts.
555
556 2013-03-19  Ryosuke Niwa  <rniwa@webkit.org>
557
558         Windows build fix after r146264.
559
560         * svg/SVGAnimateMotionElement.cpp:
561         (WebCore::SVGAnimateMotionElement::hasValidAttributeType):
562
563 2013-03-19  Nate Chapin  <japhet@chromium.org>
564
565         REGRESSION(r146223): chromium asserts/crashes in DocumentLoader
566         https://bugs.webkit.org/show_bug.cgi?id=112745
567
568         Reviewed by Kenneth Russell.
569
570         Fixes layout tests on chromium debug
571
572         * loader/DocumentLoader.cpp:
573         (WebCore::DocumentLoader::mainReceivedError): Frame might be detached, get
574             defersLoading() from mainResourceLoader().
575         (WebCore::DocumentLoader::responseReceived): RefPtr got dropped, it's really needed.
576         (WebCore::DocumentLoader::receivedData): Frame might be detached, get
577             defersLoading() from mainResourceLoader().
578         (WebCore::DocumentLoader::cancelMainResourceLoad): The ResourceError parameter
579             can be null if coming from the WebKit layer, we should have a default just in case.
580
581 2013-03-19  Geoffrey Garen  <ggaren@apple.com>
582
583         Refactored script content removal in the fragment parser for clarity and speed
584         https://bugs.webkit.org/show_bug.cgi?id=112734
585
586         Reviewed by Enrica Casucci.
587
588         * WebCore.exp.in: Export!
589
590         * dom/DocumentFragment.cpp:
591         (WebCore::DocumentFragment::parseHTML):
592         (WebCore::DocumentFragment::parseXML):
593         * dom/DocumentFragment.h:
594         (DocumentFragment): Updated for rename of FragmentScriptingPermission to
595         ParserContentPolicy.
596
597         * dom/Element.cpp:
598         (WebCore::isEventHandlerAttribute):
599         (WebCore::Element::isJavaScriptURLAttribute):
600         (WebCore::Element::isJavaScriptAttribute): Fixed a FIXME by factoring
601         out some helper functions that reuse isURLAttribute(). This makes our
602         attribute removal slightly more precise, as reflected in test changes.
603
604         (WebCore::Element::stripJavaScriptAttributes): Factored this function out
605         of parserSetAttributes to clarify that the parser is responsible for
606         fully removing scripts before inserting anything into the DOM.
607
608         Now that this is a helper function, we can avoid doing any work in the
609         common case, where script content is allowed. Also, when we do have to
610         strip attributes, we use "two finger compaction" to avoid copying the
611         vector, and to avoid O(N) vector removal operations when there is
612         something to remove.
613
614         (WebCore::Element::parserSetAttributes):
615         * dom/Element.h:
616
617         * dom/FragmentScriptingPermission.h:
618         (WebCore::scriptingContentIsAllowed):
619         (WebCore::disallowScriptingContent):
620         (WebCore::pluginContentIsAllowed):
621         (WebCore::allowPluginContent): Renamed for clarity, and added some helper
622         functions for reading values out of this enum.
623
624         * dom/ScriptableDocumentParser.cpp:
625         (WebCore::ScriptableDocumentParser::ScriptableDocumentParser): Moved
626         a settings check into the parser constructor so we're sure that all
627         clients get the right behavior.
628
629         * dom/ScriptableDocumentParser.h:
630         (WebCore::ScriptableDocumentParser::parserContentPolicy):
631         (ScriptableDocumentParser):
632         * editing/markup.cpp:
633         (WebCore::createFragmentFromMarkup):
634         (WebCore::createFragmentFromMarkupWithContext):
635         (WebCore::createFragmentForInnerOuterHTML):
636         (WebCore::createContextualFragment):
637         * editing/markup.h: Updated for renames.
638
639         * html/HTMLAnchorElement.cpp:
640         (WebCore::HTMLAnchorElement::isURLAttribute): Fixed a bug where
641         isURLAttribute would ignore href attributes in other namespaces, like
642         xlink:href.
643
644         * html/HTMLBaseElement.cpp:
645         (WebCore::HTMLBaseElement::isURLAttribute): Same bug.
646
647         * html/HTMLElement.cpp:
648         (WebCore::HTMLElement::isURLAttribute): Fixed a logic error where HTMLElement
649         wouldn't call through to its base class.
650
651         * html/HTMLLinkElement.cpp:
652         (WebCore::HTMLLinkElement::isURLAttribute): Same isURLAttribute namespace
653         bug as above.
654
655         * html/parser/HTMLConstructionSite.cpp:
656         (WebCore::setAttributes): Helper function for optionally stripping
657         disallowed attributes before setting them on an element. This helps all
658         clients get the right behavior without sprinkling checks everywhere.
659
660         (WebCore::HTMLConstructionSite::HTMLConstructionSite):
661         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
662
663         (WebCore::HTMLConstructionSite::insertScriptElement): Don't schedule the
664         element for insertion into the document if the element is forbidden. This
665         is slightly clearer than leaving an empty forbidden element in the document.
666
667         (WebCore::HTMLConstructionSite::createElement):
668         (WebCore::HTMLConstructionSite::createHTMLElement):
669         * html/parser/HTMLConstructionSite.h:
670         (HTMLConstructionSite):
671         (WebCore::HTMLConstructionSite::parserContentPolicy):
672         * html/parser/HTMLDocumentParser.cpp:
673         (WebCore::HTMLDocumentParser::HTMLDocumentParser):
674         (WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):
675         (WebCore::HTMLDocumentParser::parseDocumentFragment):
676         * html/parser/HTMLDocumentParser.h:
677         (HTMLDocumentParser):
678         (WebCore::HTMLDocumentParser::create):
679         * html/parser/HTMLTreeBuilder.cpp:
680         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
681         (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext):
682         Updated for renames and interface changes above.
683
684         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
685         (WebCore::HTMLTreeBuilder::processEndTag): Removed isParsingFragment()
686         checks to make it possible to use ParserContentPolicy in more places.
687
688         Removed call to removeChildren() because, if an element is forbidden,
689         we fully remove the element now. This brings behavior for <script>
690         elements in line with behavior for plug-in elements. It also brings
691         behavior of the HTML parser in line with behavior of the XML parser.
692
693         * html/parser/HTMLTreeBuilder.h:
694         (WebCore::HTMLTreeBuilder::create):
695         (FragmentParsingContext):
696         (WebCore::HTMLTreeBuilder::FragmentParsingContext::contextElement):
697         * platform/blackberry/PasteboardBlackBerry.cpp:
698         (WebCore::Pasteboard::documentFragment):
699         * platform/chromium/DragDataChromium.cpp:
700         (WebCore::DragData::asFragment):
701         * platform/chromium/PasteboardChromium.cpp:
702         (WebCore::Pasteboard::documentFragment):
703         * platform/gtk/PasteboardGtk.cpp:
704         (WebCore::Pasteboard::documentFragment):
705         * platform/mac/PasteboardMac.mm:
706         (WebCore::Pasteboard::documentFragment):
707         * platform/qt/DragDataQt.cpp:
708         (WebCore::DragData::asFragment):
709         * platform/qt/PasteboardQt.cpp:
710         (WebCore::Pasteboard::documentFragment):
711         * platform/win/ClipboardUtilitiesWin.cpp:
712         (WebCore::fragmentFromCFHTML):
713         (WebCore::fragmentFromHTML):
714         * platform/wx/PasteboardWx.cpp:
715         (WebCore::Pasteboard::documentFragment): Updated for renames and interface
716         changes.
717
718         * svg/SVGAElement.cpp:
719         (WebCore::SVGAElement::isURLAttribute): Fixed a bug where SVG anchor
720         elements didn't identify their URL attributes.
721
722         * svg/SVGAElement.h:
723         (SVGAElement):
724
725         * xml/XMLErrors.cpp:
726         (WebCore::createXHTMLParserErrorHeader):
727         (WebCore::XMLErrors::insertErrorMessageBlock): No need to disallow
728         scripting attributes here because we're creating the attributes 
729         ourselves and we know they're not scripting attributes.
730
731         * xml/parser/XMLDocumentParser.cpp:
732         (WebCore::XMLDocumentParser::parseDocumentFragment):
733         * xml/parser/XMLDocumentParser.h:
734         (WebCore::XMLDocumentParser::create):
735         (XMLDocumentParser): Updated for renames and interface changes above.
736
737         Removed the 8 inline capacity in the attribute vector so we could share
738         helper functions with the HTML parser, which didn't have it.
739
740         * xml/parser/XMLDocumentParserLibxml2.cpp:
741         (WebCore::setAttributes):
742         (WebCore):
743         (WebCore::XMLDocumentParser::XMLDocumentParser):
744         (WebCore::handleNamespaceAttributes):
745         (WebCore::handleElementAttributes):
746         (WebCore::XMLDocumentParser::startElementNs):
747         (WebCore::XMLDocumentParser::endElementNs):
748         * xml/parser/XMLDocumentParserQt.cpp:
749         (WebCore::setAttributes):
750         (WebCore):
751         (WebCore::XMLDocumentParser::XMLDocumentParser):
752         (WebCore::handleNamespaceAttributes):
753         (WebCore::handleElementAttributes):
754         (WebCore::XMLDocumentParser::parseStartElement):
755         (WebCore::XMLDocumentParser::parseEndElement): Same changes as for the
756         HTML parser.
757
758 2013-03-19  Philip Rogers  <pdr@google.com>
759
760         Clean up static_casts for SVG renderers
761         https://bugs.webkit.org/show_bug.cgi?id=111651
762
763         Reviewed by Abhishek Arya.
764
765         toRenderSVGPath and toRenderSVGFilter are preferred over static_casts because bad casts can
766         be caught on our testing infrastructure. This patch replaces all static_casts for
767         RenderSVGPath and RenderSVGFilter with toRenderSVGPath and toRenderSVGFilter, respectively.
768
769         This patch also adds FIXME to the remaining toRenderSVG* instances that are missing.
770
771         No new tests as this is covered with existing tests.
772
773         * rendering/RenderLayer.cpp:
774         (WebCore::RenderLayer::paintLayerContents):
775
776             This call is currently safe due to the element->hasTagName(SVGNames::clipPathTag) check.
777
778         * rendering/svg/RenderSVGPath.h:
779         (WebCore):
780         (WebCore::toRenderSVGPath):
781         * rendering/svg/RenderSVGResourceFilter.h:
782         (WebCore):
783         (WebCore::toRenderSVGFilter):
784         * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
785         (WebCore::RenderSVGResourceFilterPrimitive::styleDidChange):
786         * rendering/svg/RenderSVGRoot.cpp:
787         (WebCore::RenderSVGRoot::addResourceForClientInvalidation):
788         * rendering/svg/SVGRenderSupport.cpp:
789         (WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow):
790         (WebCore::SVGRenderSupport::rendererHasSVGShadow):
791         (WebCore::SVGRenderSupport::setRendererHasSVGShadow):
792         * rendering/svg/SVGRenderingContext.cpp:
793         (WebCore::SVGRenderingContext::~SVGRenderingContext):
794
795             This cast was not correct! Thankfully it was not required anyway.
796
797         * svg/SVGCircleElement.cpp:
798         (WebCore::SVGCircleElement::svgAttributeChanged):
799
800             This cast was not correct!
801
802         * svg/SVGEllipseElement.cpp:
803         (WebCore::SVGEllipseElement::svgAttributeChanged):
804
805             This cast was not correct!
806
807         * svg/SVGLineElement.cpp:
808         (WebCore::SVGLineElement::svgAttributeChanged):
809         * svg/SVGPathElement.cpp:
810         (WebCore::SVGPathElement::svgAttributeChanged):
811         (WebCore::SVGPathElement::pathSegListChanged):
812         (WebCore::SVGPathElement::getBBox):
813         * svg/SVGPolyElement.cpp:
814         (WebCore::SVGPolyElement::svgAttributeChanged):
815         * svg/SVGRectElement.cpp:
816         (WebCore::SVGRectElement::svgAttributeChanged):
817
818 2013-03-19  Beth Dakin  <bdakin@apple.com>
819
820         RenderLayer::scrollTo() should call FrameLoaderClient::didChangeScrollOffset()
821         https://bugs.webkit.org/show_bug.cgi?id=110673
822
823         Reviewed by Simon Fraser.
824
825         FrameLoaderClient::didChangeScrollOffset() should be called whenever something is 
826         actually being scrolled. 
827
828         * rendering/RenderLayer.cpp:
829         (WebCore::RenderLayer::scrollTo):
830
831 2013-03-19  Marja Hölttä  <marja@chromium.org>
832
833         [V8] Add machinery for generating specialized bindings for the main world
834         https://bugs.webkit.org/show_bug.cgi?id=111417
835
836         Reviewed by Jochen Eisinger.
837
838         The new specialized bindings will be faster, because they don't need to
839         do the "main world, isolated world or a worker" check, but can right
840         away assume that we're in the main world.
841
842         Added an IDL attribute (V8PerWorldBindings) to define which
843         attribute getters / setters to specialize.
844
845         This patch generates main world bindings for getters and setters of Node
846         and Element. (The possibility to generate bindings for callbacks will be
847         added later.)
848
849         No new tests (updated existing bindings tests).
850
851         * bindings/scripts/CodeGeneratorV8.pm:
852         (GenerateHeader):
853         (GenerateNormalAttrGetterCallback):
854         (GenerateNormalAttrGetter):
855         (GenerateNormalAttrSetterCallback):
856         (GenerateNormalAttrSetter):
857         (GenerateNamedConstructor):
858         (GenerateSingleBatchedAttribute):
859         (GenerateImplementation):
860         (GenerateCallbackImplementation):
861         (GenerateFunctionCallString):
862         (CreateCustomSignature):
863         (NativeToJSValue):
864         * bindings/scripts/IDLAttributes.txt:
865         * bindings/scripts/test/V8/V8Float64Array.cpp:
866         (WebCore::ConfigureV8Float64ArrayTemplate):
867         (WebCore::V8Float64Array::GetTemplate):
868         (WebCore::V8Float64Array::HasInstance):
869         * bindings/scripts/test/V8/V8Float64Array.h:
870         (WebCore::toV8ForMainWorld):
871         (WebCore):
872         (WebCore::toV8FastForMainWorld):
873         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
874         (WebCore):
875         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
876         (WebCore::V8TestActiveDOMObject::GetTemplate):
877         (WebCore::V8TestActiveDOMObject::HasInstance):
878         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
879         (WebCore::toV8ForMainWorld):
880         (WebCore):
881         (WebCore::toV8FastForMainWorld):
882         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
883         (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
884         (WebCore::V8TestCustomNamedGetter::GetTemplate):
885         (WebCore::V8TestCustomNamedGetter::HasInstance):
886         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
887         (WebCore::toV8ForMainWorld):
888         (WebCore):
889         (WebCore::toV8FastForMainWorld):
890         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
891         (WebCore):
892         (WebCore::ConfigureV8TestEventConstructorTemplate):
893         (WebCore::V8TestEventConstructor::GetTemplate):
894         (WebCore::V8TestEventConstructor::HasInstance):
895         * bindings/scripts/test/V8/V8TestEventConstructor.h:
896         (WebCore::toV8ForMainWorld):
897         (WebCore):
898         (WebCore::toV8FastForMainWorld):
899         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
900         (WebCore::ConfigureV8TestEventTargetTemplate):
901         (WebCore::V8TestEventTarget::GetTemplate):
902         (WebCore::V8TestEventTarget::HasInstance):
903         * bindings/scripts/test/V8/V8TestEventTarget.h:
904         (WebCore::toV8ForMainWorld):
905         (WebCore):
906         (WebCore::toV8FastForMainWorld):
907         * bindings/scripts/test/V8/V8TestException.cpp:
908         (WebCore):
909         (WebCore::ConfigureV8TestExceptionTemplate):
910         (WebCore::V8TestException::GetTemplate):
911         (WebCore::V8TestException::HasInstance):
912         * bindings/scripts/test/V8/V8TestException.h:
913         (WebCore::toV8ForMainWorld):
914         (WebCore):
915         (WebCore::toV8FastForMainWorld):
916         * bindings/scripts/test/V8/V8TestInterface.cpp:
917         (WebCore):
918         (WebCore::ConfigureV8TestInterfaceTemplate):
919         (WebCore::V8TestInterface::GetTemplate):
920         (WebCore::V8TestInterface::HasInstance):
921         * bindings/scripts/test/V8/V8TestInterface.h:
922         (WebCore::toV8ForMainWorld):
923         (WebCore):
924         (WebCore::toV8FastForMainWorld):
925         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
926         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
927         (WebCore::V8TestMediaQueryListListener::GetTemplate):
928         (WebCore::V8TestMediaQueryListListener::HasInstance):
929         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
930         (WebCore::toV8ForMainWorld):
931         (WebCore):
932         (WebCore::toV8FastForMainWorld):
933         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
934         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
935         (WebCore::ConfigureV8TestNamedConstructorTemplate):
936         (WebCore::V8TestNamedConstructor::GetTemplate):
937         (WebCore::V8TestNamedConstructor::HasInstance):
938         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
939         (WebCore::toV8ForMainWorld):
940         (WebCore):
941         (WebCore::toV8FastForMainWorld):
942         * bindings/scripts/test/V8/V8TestNode.cpp:
943         (WebCore::ConfigureV8TestNodeTemplate):
944         (WebCore::V8TestNode::GetTemplate):
945         (WebCore::V8TestNode::HasInstance):
946         * bindings/scripts/test/V8/V8TestNode.h:
947         (WebCore::toV8ForMainWorld):
948         (WebCore):
949         (WebCore::toV8FastForMainWorld):
950         * bindings/scripts/test/V8/V8TestObj.cpp:
951         (WebCore):
952         (WebCore::ConfigureV8TestObjTemplate):
953         (WebCore::V8TestObj::GetTemplate):
954         (WebCore::V8TestObj::HasInstance):
955         (WebCore::V8TestObj::installPerContextProperties):
956         * bindings/scripts/test/V8/V8TestObj.h:
957         (WebCore::toV8ForMainWorld):
958         (WebCore):
959         (WebCore::toV8FastForMainWorld):
960         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
961         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
962         (WebCore::V8TestOverloadedConstructors::GetTemplate):
963         (WebCore::V8TestOverloadedConstructors::HasInstance):
964         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
965         (WebCore::toV8ForMainWorld):
966         (WebCore):
967         (WebCore::toV8FastForMainWorld):
968         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
969         (WebCore):
970         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
971         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
972         (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
973         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
974         (WebCore::toV8ForMainWorld):
975         (WebCore):
976         (WebCore::toV8FastForMainWorld):
977         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
978         (WebCore):
979         (WebCore::ConfigureV8TestTypedefsTemplate):
980         (WebCore::V8TestTypedefs::GetTemplate):
981         (WebCore::V8TestTypedefs::HasInstance):
982         * bindings/scripts/test/V8/V8TestTypedefs.h:
983         (WebCore::toV8ForMainWorld):
984         (WebCore):
985         (WebCore::toV8FastForMainWorld):
986         * bindings/v8/DOMDataStore.h:
987         (WebCore::DOMDataStore::getWrapperForMainWorld):
988         (DOMDataStore):
989         * bindings/v8/V8DOMConfiguration.cpp:
990         (WebCore::V8DOMConfiguration::batchConfigureAttributes):
991         (WebCore::V8DOMConfiguration::configureTemplate):
992         * bindings/v8/V8DOMConfiguration.h:
993         (BatchedAttribute):
994         (V8DOMConfiguration):
995         (WebCore::V8DOMConfiguration::configureAttribute):
996         * bindings/v8/custom/V8DOMWindowCustom.cpp:
997         (WebCore::toV8ForMainWorld):
998         (WebCore):
999         * bindings/v8/custom/V8EventTargetCustom.cpp:
1000         (WebCore::toV8ForMainWorld):
1001         (WebCore):
1002         * bindings/v8/custom/V8IDBAnyCustom.cpp:
1003         (WebCore::toV8ForMainWorld):
1004         (WebCore):
1005         * bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
1006         (WebCore::toV8ForMainWorld):
1007         (WebCore):
1008         * bindings/v8/custom/V8WorkerContextCustom.cpp:
1009         (WebCore::toV8ForMainWorld):
1010         (WebCore):
1011         * dom/Element.idl:
1012         * dom/Node.idl:
1013
1014 2013-03-19  Mike West  <mkwst@chromium.org>
1015
1016         FeatureObserver: Measure X-Frame-Options usage.
1017         https://bugs.webkit.org/show_bug.cgi?id=112670
1018
1019         Reviewed by Adam Barth.
1020
1021         This patch adds three FeatureObserver entries to gather information
1022         about 'X-Frame-Options' usage in general, and in particular usage
1023         and potential misunderstanding of the 'SAMEORIGIN' value.
1024
1025         Three entries are added:
1026
1027         - XFrameOptions measures the raw number of 'X-Frame-Options' headers.
1028
1029         - XFrameOptionsSameOrigin measures the number of those headers that
1030           set the value to 'SAMEORIGIN'.
1031
1032         - XFrameOptionsSameOriginWithBadAncestorChain measures the number of
1033           occasions in which the frame passed the "top-only" origin check we're
1034           currently performing, but would have failed a more strict check
1035           against poisoned ancestor chains (that is, an ancestor chain that
1036           looks like 'example.com' -> 'evil.com' -> 'example.com').
1037
1038         Mozilla is considering changing 'SAMEORIGIN's behavior to block the
1039         latter loophole[1], and the UI Safety spec is considering dropping
1040         'top-only' entirely[2]. This data will inform those decisions.
1041
1042         [1]: https://bugzilla.mozilla.org/show_bug.cgi?id=725490
1043         [2]: http://lists.w3.org/Archives/Public/public-webappsec/2013Mar/0007.html
1044
1045         This doesn't change web-visible behavior; it only adds histograms
1046
1047         * loader/FrameLoader.cpp:
1048         (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
1049             When processing an 'X-Frame-Options' header's value, call out to
1050             FeatureObserver when relevant to increment the correct histogram
1051             entries.
1052         * page/FeatureObserver.h:
1053             Added three entries to the FeatureObserver enum: XFrameOptions,
1054             XFrameOptionsSameOrigin, and XFrameOptionsSameOriginWithBadAncestorChain.
1055             Each is explained above.
1056
1057 2013-03-19  Adam Barth  <abarth@webkit.org>
1058
1059         GenerateHashValue should be usable outside CodeGeneratorJS.pm
1060         https://bugs.webkit.org/show_bug.cgi?id=112736
1061
1062         Reviewed by Benjamin Poulain.
1063
1064         GenerateHashValue is not specific to CodeGeneratorJS.pm. Instead, the
1065         function matches the StringHash used in WTF. This patch moves the
1066         function into a separate Perl module so that it can be used by other
1067         Perl scripts. For example, I plan to use this function to compute the
1068         hash value for HTMLNames at compile time rather than at startup.
1069
1070         * bindings/scripts/CodeGeneratorJS.pm:
1071         (GenerateHashTable):
1072         * bindings/scripts/Hash.pm: Added.
1073         (leftShift):
1074         (GenerateHashValue):
1075
1076 2013-03-19  Dean Jackson  <dino@apple.com>
1077
1078         Allow PlugIn Snapshotting to be tested
1079         https://bugs.webkit.org/show_bug.cgi?id=98696
1080
1081         Reviewed by Tim Horton.
1082
1083         Expose a new setting maximumPlugInSnapshotAttempts that can
1084         be set by testing scripts.
1085
1086         Tests: plugins/snapshotting/restart.html
1087                plugins/snapshotting/simple.html
1088
1089         * page/Settings.in:
1090
1091 2013-03-19  Dean Jackson  <dino@apple.com>
1092
1093         Restarting a snapshotted plugin should restart all plugins from the same domain on the page
1094         https://bugs.webkit.org/show_bug.cgi?id=112725
1095
1096         Reviewed by Tim Horton.
1097
1098         If the user restarts a snapshotted plugin, then typically they will
1099         want to restart all similar plugins on the page, where similarity
1100         is defined by the domain of the content. Or in other words, since clients
1101         will typically add a restarted plugin to the list of autostarting
1102         domain hashes, we should start the other plugins that would autostart
1103         on reload.
1104
1105         When a snapshotted plugin gets the user click telling it to restart, it iterates
1106         over every frame in the document looking for domain hashes similar to its own.
1107         It then manually restarts each of the paused plugins.
1108
1109         * html/HTMLPlugInImageElement.cpp:
1110         (WebCore::addPlugInsFromNodeListMatchingOriginHash): Static helper function
1111             that builds a list of plugins to restart.
1112         (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): After restarting itself,
1113             the plugin looks for all other similar snapshotted plugins in the page.
1114         (WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn): Splits out the actual
1115             restart functionality, to make it separate from plugins that were manually
1116             restarted and thus probably want to forward a delayed click event.
1117         * html/HTMLPlugInImageElement.h:
1118         (HTMLPlugInImageElement): New method restartSnapshottedPlugIn.
1119
1120 2013-03-19  Nate Chapin  <japhet@chromium.org>
1121
1122         Merge MainResourceLoader's SubstituteData loading + others into DocumentLoader
1123         https://bugs.webkit.org/show_bug.cgi?id=112722
1124
1125         Part of the ongoing effort to merge MainResourceLoader entirely
1126         into DocumentLoader.
1127
1128         Reviewed by Antti Koivisto.
1129
1130         No new tests, refactor only.
1131
1132         * loader/DocumentLoader.cpp:
1133         (WebCore::DocumentLoader::mainReceivedError): Moved from MainResourceLoader::receivedError
1134             and the failure case in MainResourceLoader::notifyFinished.
1135         (WebCore::DocumentLoader::stopLoading):
1136         (WebCore::DocumentLoader::finishedLoading):
1137         (WebCore::DocumentLoader::handleSubstituteDataLoadNow): Moved from MainResourceLoader.
1138         (WebCore::DocumentLoader::startDataLoadTimer): Moved from MainResourceLoader.
1139         (WebCore::DocumentLoader::handleSubstituteDataLoadSoon): Moved from MainResourceLoader.
1140         (WebCore::DocumentLoader::willSendRequest):
1141         (WebCore::DocumentLoader::continueAfterNavigationPolicy):
1142         (WebCore::DocumentLoader::responseReceived):
1143         (WebCore::DocumentLoader::receivedData):
1144         (WebCore::DocumentLoader::startLoadingMainResource): Most of MainResourceLoader::load
1145             moved here.
1146         (WebCore::DocumentLoader::cancelMainResourceLoad): MainResourceLoader::cancel
1147             moved here.
1148         * loader/DocumentLoader.h:
1149         * loader/MainResourceLoader.cpp:
1150         (WebCore::MainResourceLoader::notifyFinished):
1151         (WebCore::MainResourceLoader::reportMemoryUsage):
1152         (WebCore::MainResourceLoader::load):
1153         (WebCore::MainResourceLoader::identifier):
1154         * loader/MainResourceLoader.h:
1155
1156 2013-03-19  Ryosuke Niwa  <rniwa@webkit.org>
1157
1158         Unreviewed build fix after r146220. Add the missing ]'s.
1159
1160         * English.lproj/localizedStrings.js:
1161
1162 2013-03-19  Alpha Lam  <hclam@chromium.org>
1163
1164         GIFImageReader to count frames and decode in one pass
1165         https://bugs.webkit.org/show_bug.cgi?id=111144
1166
1167         Reviewed by Stephen White.
1168
1169         OBJECTIVE
1170
1171         This change has the objective of improving performance reading GIF
1172         files. This implementation can parse the entire GIF file in one pass
1173         and saves information about each frame, such that decoding in a later
1174         pass does not need to parse the file again.
1175
1176         This change fixes the performance problem of decoding GIF files when
1177         they are received very slowly. Existing implementation creates a new
1178         GIFImageReader for counting frames for every time it is notified that
1179         new data has been received, this has O(n^2) behavior when data is
1180         received very slowly.
1181
1182         ALGORITHM
1183
1184         This implementation divides the decoding process into two separate
1185         steps: parse and LZW decoding.
1186
1187         In the parse step, the state machine is similar to the existing
1188         implementation. However this algorithm does not perform any decoding
1189         while scanning through the file. Intead it creates a new data structure
1190         for caching all frame information and the corresponding LZW blocks.
1191
1192         If a full decode is requested then LZW decoding is performed. This
1193         implementation looks through all frame information saved and decodes
1194         each frame sequentially until the target frame is reached.
1195
1196         Because of the separation of parse and decode, each frame can be
1197         decoded separately. This paves the way to support seeking in GIF files.
1198
1199         TESTING
1200
1201         Added a new unit test to cover progressively decoding a GIF image.
1202         There are already GIF unit tests for functional testing.
1203         Exhaustive testing was done locally with a corpus of 60k images.
1204         I mixed the corpus with some generated bad data and truncated files.
1205         The results was bit-identical when compared to the previous
1206         implementation.
1207
1208         These was also no crashing when decoding the entire corpus.
1209
1210         * platform/image-decoders/gif/GIFImageDecoder.cpp:
1211         (WebCore::GIFImageDecoder::GIFImageDecoder):
1212         (WebCore::GIFImageDecoder::setData):
1213         (WebCore::GIFImageDecoder::frameCount):
1214         (WebCore::GIFImageDecoder::repetitionCount):
1215         (WebCore::GIFImageDecoder::decode):
1216         * platform/image-decoders/gif/GIFImageDecoder.h:
1217         (GIFImageDecoder):
1218         * platform/image-decoders/gif/GIFImageReader.cpp:
1219         (GIFLZWContext::outputRow):
1220         (GIFLZWContext::doLZW):
1221         (GIFFrameContext::decode):
1222         (GIFImageReader::decode):
1223         (GIFImageReader::parse):
1224         (GIFImageReader::addFrameIfNecessary):
1225         (GIFLZWContext::prepareToDecode):
1226         * platform/image-decoders/gif/GIFImageReader.h:
1227         There is a lot of reshuffling in GIFLZWContext and GIFFrameContext.
1228         These changes has the goal of having GIFLZWContext be a pure decoding
1229         state machine. GIFFrameContext is mostly a read-only container for
1230         frame information. With all these changes we can decode each
1231         GIFFrameContext independently.
1232
1233         The ownership pattern is:
1234         GIFImageReader owns GIFFrameContext owns GIFLZWContext.
1235
1236         (GIFLZWContext::GIFLZWContext):
1237         (GIFLZWContext):
1238         (GIFLZWContext::hasRemainingRows):
1239         GIFLZWContext is moved to the top of file.
1240         (GIFLZWBlock):
1241         (GIFLZWBlock::GIFLZWBlock):
1242         New data structure to save block position and size.
1243         (GIFFrameContext):
1244         (GIFFrameContext::GIFFrameContext):
1245         (GIFFrameContext::~GIFFrameContext):
1246         (GIFFrameContext::addLzwBlock):
1247         (GIFFrameContext::isComplete):
1248         (GIFFrameContext::isHeaderDefined):
1249         (GIFFrameContext::isDataSizeDefined):
1250         (GIFFrameContext::setComplete):
1251         (GIFFrameContext::setHeaderDefined):
1252         (GIFFrameContext::setDataSize):
1253         Now owns GIFLZWContext for decoding.
1254         (GIFImageReader::GIFImageReader):
1255         (GIFImageReader::~GIFImageReader):
1256         (GIFImageReader::imagesCount):
1257         (GIFImageReader::frameContext):
1258         (GIFImageReader):
1259         (GIFImageReader::parseFailed):
1260         (GIFImageReader::isFirstFrame):
1261         Owns a list of GIFFrameContxt.
1262
1263 2013-03-19  Brent Fulgham  <bfulgham@webkit.org>
1264
1265         [WinCairo] Unreviewed build correction for WebCore library.
1266
1267         * WebCore.vcxproj/WebCore.vcxproj: Exclude CG-specific frame source
1268         from WinCairo build.
1269         * WebCore.vcxproj/WebCoreGeneratedWinCairo.make: Pass correct
1270         parameter to build-generated-files.sh for WinCairo build.
1271
1272 2013-03-19  Leon Scroggins  <scroggo@chromium.org>
1273
1274         Implement onRefEncodedData for lazy pixel refs.
1275         This allows printToSkPicture to write the original
1276         encoded data to the stream.
1277         Add a method to ImageFrameGenerator to copy its
1278         data, which is used by onRefEncodedData.
1279         https://bugs.webkit.org/show_bug.cgi?id=110759
1280
1281         Reviewed by Stephen White.
1282
1283         No new tests. New functionality is for testing purposes
1284         (creating SKP files).
1285
1286         * platform/graphics/chromium/ImageFrameGenerator.cpp:
1287         (WebCore::ImageFrameGenerator::data):
1288         (WebCore):
1289         * platform/graphics/chromium/ImageFrameGenerator.h:
1290         (ImageFrameGenerator):
1291         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
1292         (WebCore::LazyDecodingPixelRef::isClipped):
1293         (WebCore):
1294         (WebCore::LazyDecodingPixelRef::onRefEncodedData):
1295         * platform/graphics/chromium/LazyDecodingPixelRef.h:
1296         (LazyDecodingPixelRef):
1297
1298 2013-03-19  Philip Rogers  <pdr@google.com>
1299
1300         Separate SVG image size and container size
1301         https://bugs.webkit.org/show_bug.cgi?id=112651
1302
1303         Reviewed by Stephen Chenney.
1304
1305         Previously, SVG images could retain their cached size between reloads due to a bug where an
1306         old container size would be re-used if the image's new container size was not available yet.
1307
1308         This patch changes SVGImage::size() to return the intrinsic size of the image before a
1309         container size has been set. SVGImageCache::imageSizeForRenderer will now return the
1310         image's intrinsic size instead of a cached value if the container size cannot be looked up.
1311         In javascript, querying [SVGImage].width will now return either the image's intrinsic size
1312         or the size of 'imageForContainer'.
1313
1314         Test: svg/as-image/svg-container-size-after-reload.html
1315
1316         * svg/graphics/SVGImage.cpp:
1317         (WebCore::SVGImage::setContainerSize):
1318         (WebCore::SVGImage::containerSize):
1319         (WebCore::SVGImage::draw):
1320         (WebCore::SVGImage::dataChanged):
1321         * svg/graphics/SVGImage.h:
1322
1323             The member variable 'm_intrinsicSize' has been added to track the image's intrinsic
1324             size. This term can be found in: http://www.w3.org/TR/css3-images/#default-sizing
1325
1326         * svg/graphics/SVGImageCache.cpp:
1327         (WebCore::SVGImageCache::imageSizeForRenderer):
1328         (WebCore::SVGImageCache::imageForRenderer):
1329
1330             In both of these functions, image has been renamed to imageForContainer here to clarify
1331             that the cached container size is being returned, not the image's intrinsic size.
1332
1333 2013-03-19  Joshua Bell  <jsbell@chromium.org>
1334
1335         IndexedDB: Use integer plumbing for deleteDatabase onVersionChange calls
1336         https://bugs.webkit.org/show_bug.cgi?id=112715
1337
1338         Reviewed by Tony Chang.
1339
1340         When deleteDatabase on the back-end needs to send the front-end an
1341         onVersionChange notification it does so using the string overload. That's
1342         the only remaining use of that overload and we'd like to delete it. Switch
1343         to using the integer overload, with an already defined special value.
1344         This will unblock http://wkbug.com/112712 to delete the dead code.
1345
1346         No new tests - no functional change.
1347
1348         * Modules/indexeddb/IDBDatabase.cpp:
1349         (WebCore::IDBDatabase::onVersionChange): Map NoIntVersion to null.
1350         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1351         (WebCore::IDBDatabaseBackendImpl::deleteDatabase): Call integer overload.
1352
1353 2013-03-19  Terry Anderson  <tdanderson@chromium.org>
1354
1355         Hover effects from a GestureTapDown are dismissed by a GestureTap on the hover element
1356         https://bugs.webkit.org/show_bug.cgi?id=103283
1357
1358         Reviewed by Antonio Gomes.
1359
1360         On a GestureTap event over an element that was made visible as a hover effect, the
1361         GestureTap should be applied to that element and the hover effects should not be dismissed. 
1362         A GestureTap or a mouse move to a location outside of the element should still dismiss the
1363         hover effects.
1364
1365         Tests: fast/events/touch/gesture/gesture-tap-hover-clear.html
1366                fast/events/touch/gesture/gesture-tap-on-hover-element.html
1367
1368         * page/EventHandler.cpp:
1369         (WebCore::EventHandler::handleGestureEvent):
1370
1371 2013-03-19  Alexei Filippov  <alph@chromium.org>
1372
1373         Web Inspector: Fix menu items capitalization.
1374         https://bugs.webkit.org/show_bug.cgi?id=112553
1375
1376         The context menu items should be correctly capitalized.
1377
1378         Reviewed by Pavel Feldman.
1379
1380         * English.lproj/localizedStrings.js:
1381         * inspector/front-end/BreakpointsSidebarPane.js:
1382         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
1383         (WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
1384         (WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
1385         * inspector/front-end/CallStackSidebarPane.js:
1386         (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
1387         * inspector/front-end/ConsoleView.js:
1388         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.get var):
1389         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.set get contextMenu):
1390         * inspector/front-end/DOMBreakpointsSidebarPane.js:
1391         (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
1392         * inspector/front-end/DataGrid.js:
1393         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
1394         * inspector/front-end/ElementsPanel.js:
1395         (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
1396         (WebInspector.ElementsPanel.prototype.appendApplicableItems):
1397         * inspector/front-end/ElementsTreeOutline.js:
1398         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
1399         (WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
1400         * inspector/front-end/HeapSnapshotDataGrids.js:
1401         (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu):
1402         * inspector/front-end/NetworkPanel.js:
1403         (WebInspector.NetworkPanel.prototype.appendApplicableItems):
1404         * inspector/front-end/ProfilesPanel.js:
1405         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
1406         (WebInspector.ProfilesPanel.prototype.appendApplicableItems):
1407         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
1408         * inspector/front-end/ResourcesPanel.js:
1409         (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
1410         * inspector/front-end/ScriptsPanel.js:
1411         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeMappingItems):
1412         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
1413         (WebInspector.ScriptsPanel.prototype._appendFunctionItems):
1414         * inspector/front-end/TabbedPane.js:
1415         (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
1416         * inspector/front-end/TimelinePanel.js:
1417         (WebInspector.TimelinePanel.prototype._contextMenu):
1418         * inspector/front-end/WatchExpressionsSidebarPane.js:
1419         (WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
1420         (WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
1421
1422 2013-03-19  Alec Flett  <alecflett@chromium.org>
1423
1424         Inspector: IndexedDB clear button and menu item
1425         https://bugs.webkit.org/show_bug.cgi?id=112066
1426
1427         Reviewed by Vsevolod Vlasov.
1428
1429         Adds a button that can clear the contents of an objectStore from
1430         the IDBDataView, and a context menu from the ResourcesPanel that
1431         can do the same.
1432
1433         This also disables the Refresh button from the IDBDataView, so there
1434         is at least some visual feedback that the refresh button is working.
1435
1436         Tests: http/tests/inspector/indexeddb/database-data.html
1437
1438         * inspector/Inspector.json: New API clearObjectStore.
1439         * inspector/InspectorIndexedDBAgent.cpp: Implementation of clearObjectStore
1440         (WebCore):
1441         (ClearObjectStoreListener): Calls the original closure after the objectStore is cleared.
1442         (ClearObjectStore): Initiates the clear operation after the DB opens.
1443         * inspector/front-end/IndexedDBModel.js: Exposes clearObjectStore to the Model API.
1444         (WebInspector.IDBDataView): Add clear button and enable/disable clear and refresh buttons appropriately.
1445         * inspector/front-end/ResourcesPanel.js: Add a menu item and refresh the displayed data after the clear.
1446         * inspector/front-end/inspector.css: Add a style to show the right button for clear.
1447
1448 2013-03-19  Nate Chapin  <japhet@chromium.org>
1449
1450         Merge MainResourceLoader::responseReceived into DocumentLoader
1451         https://bugs.webkit.org/show_bug.cgi?id=112593
1452
1453         Part of the ongoing effort to merge MainResourceLoader entirely
1454         into DocumentLoader.
1455
1456         Reviewed by Adam Barth.
1457
1458         No new tests, refactor only.
1459
1460         * loader/DocumentLoader.cpp:
1461         (WebCore::DocumentLoader::DocumentLoader):
1462         (WebCore::DocumentLoader::stopLoading):
1463         (WebCore::DocumentLoader::finishedLoading): The only thing left in
1464             MainResourceLoader related to this function was a RefPtr which indirectly
1465             protected DocumentLoader. Move the RefPtr here and protect DocumentLoader directly.
1466         (WebCore::DocumentLoader::responseReceived): Moved from MainResourceLoader.
1467         (WebCore::DocumentLoader::callContinueAfterContentPolicy): Moved from MainResourceLoader.
1468         (WebCore::DocumentLoader::continueAfterContentPolicy): Moved from MainResourceLoader.
1469         (WebCore::DocumentLoader::interruptedForPolicyChangeError): Moved from MainResourceLoader.
1470         (WebCore::DocumentLoader::stopLoadingForPolicyChange): Moved from MainResourceLoader.
1471         (WebCore::DocumentLoader::receivedData):
1472         (WebCore::DocumentLoader::cancelMainResourceLoad):
1473         * loader/DocumentLoader.h:
1474         (WebCore::DocumentLoader::isLoadingMultipartContent): Store multipart bit here.
1475         * loader/MainResourceLoader.cpp:
1476         (WebCore::MainResourceLoader::MainResourceLoader):
1477         (WebCore::MainResourceLoader::cancel):
1478         (WebCore::MainResourceLoader::responseReceived):
1479         (WebCore::MainResourceLoader::notifyFinished):
1480         * loader/MainResourceLoader.h:
1481
1482 2013-03-19  Tony Chang  <tony@chromium.org>
1483
1484         Cleanup defaultUnifiedTextCheckerEnabled type
1485         https://bugs.webkit.org/show_bug.cgi?id=112640
1486
1487         Reviewed by Adam Barth.
1488
1489         It's a bool setting. I accidentally declared the default value as a double
1490         in r139202.
1491
1492         No new tests, this is a refactor/code cleanup.
1493
1494         * page/Settings.cpp:
1495         (WebCore): Switch from double to a bool.
1496
1497 2013-03-19  Alexei Filippov  <alph@chromium.org>
1498
1499         Web Inspector: Increase DataGrid default font size.
1500         https://bugs.webkit.org/show_bug.cgi?id=112692
1501
1502         Reviewed by Pavel Feldman.
1503
1504         The default font of 10px is too small. Most instances of DataGrid set
1505         font to 11px.
1506
1507         * inspector/front-end/dataGrid.css:
1508         (.data-grid table):
1509
1510 2013-03-19  Max Vujovic  <mvujovic@adobe.com>
1511
1512         Refactor conditions for setCompositingLayersNeedRebuild in RenderLayer::styleChanged
1513         https://bugs.webkit.org/show_bug.cgi?id=112606
1514
1515         Reviewed by Simon Fraser.
1516
1517         To fix bug 109098 [1], we will need to add more conditions for calling
1518         RenderLayerCompositor::setCompositingLayersNeedRebuild in RenderLayer::styleChanged.
1519         Adding more non-trivial conditions will make this block of code even harder to follow.
1520         This patch refactors the current conditions into functions:
1521             needsCompositingLayersRebuiltForClip
1522             needsCompositingLayersRebuiltForOverflow
1523
1524         In bug 109098 [1], I'm planning to add:
1525             needsCompositingLayersRebuiltForFilters
1526
1527         [1]: https://bugs.webkit.org/show_bug.cgi?id=109098
1528
1529         No new tests. Just refactoring.
1530
1531         * rendering/RenderLayer.cpp:
1532         (WebCore):
1533         (WebCore::RenderLayer::needsCompositingLayersRebuiltForClip):
1534         (WebCore::RenderLayer::needsCompositingLayersRebuiltForOverflow):
1535             This is a method and not a file static function because it needs to look at the
1536             RenderLayer's stackingContainer(), which is a private method.
1537         (WebCore::RenderLayer::styleChanged):
1538         * rendering/RenderLayer.h:
1539         (RenderLayer):
1540
1541 2013-03-19  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1542
1543         [Qt] Support kerning in fast path font rendering
1544         https://bugs.webkit.org/show_bug.cgi?id=106013
1545
1546         Reviewed by Jocelyn Turcotte.
1547
1548         To support kerning in the fast font path we need to implement SimpleFontData::applyTransforms.
1549
1550         This patch changes the types used by the fast path GlyphBuffer to match those used by Qt,
1551         and implements SimpleFontData::applyTransforms using QRawFont::advancesForGlyphIndexes.
1552
1553         * platform/graphics/GlyphBuffer.h:
1554         (GlyphBufferAdvance):
1555         (WebCore::GlyphBufferAdvance::GlyphBufferAdvance):
1556         (WebCore::GlyphBufferAdvance::setWidth):
1557         (WebCore::GlyphBufferAdvance::width):
1558         (WebCore::GlyphBufferAdvance::height):
1559         (WebCore::GlyphBuffer::add):
1560         * platform/graphics/SimpleFontData.h:
1561         (WebCore::SimpleFontData::applyTransforms):
1562         * platform/graphics/WidthIterator.h:
1563         (WebCore::WidthIterator::supportsTypesettingFeatures):
1564
1565 2013-03-19  Sergey Ryazanov  <serya@chromium.org>
1566
1567         Web Inspector: split Console into two entities, a web-facing bound object and page console.
1568         https://bugs.webkit.org/show_bug.cgi?id=111578
1569
1570         Reviewed by Vsevolod Vlasov.
1571
1572         Otherwise, a lot of logging in WebCore needs to go through the DOMWindow which is unnecessary.
1573
1574         * CMakeLists.txt:
1575         * GNUmakefile.list.am:
1576         * Target.pri:
1577         * WebCore.exp.in:
1578         * WebCore.gypi:
1579         * WebCore.order:
1580         * WebCore.vcproj/WebCore.vcproj:
1581         * WebCore.vcxproj/WebCore.vcxproj:
1582         * WebCore.vcxproj/WebCore.vcxproj.filters:
1583         * WebCore.xcodeproj/project.pbxproj:
1584         * bindings/js/JSCustomXPathNSResolver.cpp:
1585         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
1586         * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
1587         (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
1588         * dom/Document.cpp:
1589         (WebCore::Document::addConsoleMessage):
1590         (WebCore::Document::addMessage):
1591         * inspector/PageDebuggerAgent.cpp:
1592         (WebCore::PageDebuggerAgent::muteConsole):
1593         (WebCore::PageDebuggerAgent::unmuteConsole):
1594         * inspector/PageRuntimeAgent.cpp:
1595         (WebCore::PageRuntimeAgent::muteConsole):
1596         (WebCore::PageRuntimeAgent::unmuteConsole):
1597         * page/Console.cpp:
1598         (WebCore::internalAddMessage):
1599         * page/Console.h:
1600         (WebCore):
1601         (Console):
1602         * page/DOMWindow.cpp:
1603         (WebCore::DOMWindow::pageConsole):
1604         (WebCore):
1605         (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
1606         (WebCore::DOMWindow::printErrorMessage):
1607         * page/DOMWindow.h:
1608         (WebCore):
1609         (DOMWindow):
1610         * page/Page.cpp:
1611         (WebCore::Page::Page):
1612         * page/Page.h:
1613         (WebCore):
1614         (WebCore::Page::console):
1615         (Page):
1616         * page/PageConsole.cpp: Added.
1617         (WebCore::PageConsole::PageConsole):
1618         (WebCore):
1619         (WebCore::PageConsole::~PageConsole):
1620         (WebCore::PageConsole::printSourceURLAndLine):
1621         (WebCore::PageConsole::printMessageSourceAndLevelPrefix):
1622         (WebCore::PageConsole::addMessage):
1623         (WebCore::PageConsole::mute):
1624         (WebCore::PageConsole::unmute):
1625         (WebCore::PageConsole::shouldPrintExceptions):
1626         (WebCore::PageConsole::setShouldPrintExceptions):
1627         * page/PageConsole.h: Copied from Source/WebCore/page/Console.h.
1628         (WebCore):
1629         (PageConsole):
1630         (WebCore::PageConsole::create):
1631         (WebCore::PageConsole::page):
1632         * xml/XSLStyleSheetLibxslt.cpp:
1633         (WebCore::XSLStyleSheet::parseString):
1634         * xml/XSLTProcessorLibxslt.cpp:
1635         (WebCore::XSLTProcessor::parseErrorFunc):
1636         (WebCore::docLoaderFunc):
1637
1638 2013-03-19  Ilya Tikhonovsky  <loislo@chromium.org>
1639
1640         Web Inspector: move OverviewGrid and OverviewWindow into separate file.
1641         https://bugs.webkit.org/show_bug.cgi?id=112693
1642
1643         Reviewed by Yury Semikhatsky.
1644
1645         It is the third patch for the meta bug "Web Inspector: meta bug: extract OverviewGrid from TimelineOverviewPane"
1646         It just moves the OverviewGrid and the related classes into its own file.
1647
1648         * WebCore.gypi:
1649         * WebCore.vcproj/WebCore.vcproj:
1650         * WebCore.vcxproj/WebCore.vcxproj:
1651         * WebCore.vcxproj/WebCore.vcxproj.filters:
1652         * inspector/compile-front-end.py:
1653         * inspector/front-end/OverviewGrid.js: Added.
1654         (WebInspector.OverviewGrid):
1655         (WebInspector.OverviewGrid.prototype.itemsGraphsElement):
1656         (WebInspector.OverviewGrid.prototype.insertBeforeItemsGraphsElement):
1657         (WebInspector.OverviewGrid.prototype.clientWidth):
1658         (WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
1659         (WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
1660         (WebInspector.OverviewGrid.prototype.updateDividers):
1661         (WebInspector.OverviewGrid.prototype.addEventDividers):
1662         (WebInspector.OverviewGrid.prototype.removeEventDividers):
1663         (WebInspector.OverviewGrid.prototype.setWindowPosition):
1664         (WebInspector.OverviewGrid.prototype.reset):
1665         (WebInspector.OverviewGrid.prototype.windowLeft):
1666         (WebInspector.OverviewGrid.prototype.windowRight):
1667         (WebInspector.OverviewGrid.prototype.setWindow):
1668         (WebInspector.OverviewGrid.prototype.addEventListener):
1669         (WebInspector.OverviewGrid.Window):
1670         (WebInspector.OverviewGrid.Window.prototype.reset):
1671         (WebInspector.OverviewGrid.Window.prototype._leftResizeElementDragging):
1672         (WebInspector.OverviewGrid.Window.prototype._rightResizeElementDragging):
1673         (WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
1674         (WebInspector.OverviewGrid.Window.prototype._windowSelectorDragging):
1675         (WebInspector.OverviewGrid.Window.prototype._endWindowSelectorDragging):
1676         (WebInspector.OverviewGrid.Window.prototype._startWindowDragging):
1677         (WebInspector.OverviewGrid.Window.prototype._windowDragging):
1678         (WebInspector.OverviewGrid.Window.prototype._endWindowDragging):
1679         (WebInspector.OverviewGrid.Window.prototype._moveWindow):
1680         (WebInspector.OverviewGrid.Window.prototype._resizeWindowLeft):
1681         (WebInspector.OverviewGrid.Window.prototype._resizeWindowRight):
1682         (WebInspector.OverviewGrid.Window.prototype._resizeWindowMaximum):
1683         (WebInspector.OverviewGrid.Window.prototype._setWindow):
1684         (WebInspector.OverviewGrid.Window.prototype._setWindowPosition):
1685         (WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
1686         (WebInspector.OverviewGrid.Window.prototype._zoom):
1687         (WebInspector.OverviewGrid.WindowSelector):
1688         (WebInspector.OverviewGrid.WindowSelector.prototype._createSelectorElement):
1689         (WebInspector.OverviewGrid.WindowSelector.prototype._close):
1690         (WebInspector.OverviewGrid.WindowSelector.prototype._updatePosition):
1691         * inspector/front-end/TimelineOverviewPane.js:
1692         * inspector/front-end/WebKit.qrc:
1693         * inspector/front-end/inspector.html:
1694
1695 2013-03-19  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1696
1697         [Qt] Monospace font does not render in proper sizes
1698         https://bugs.webkit.org/show_bug.cgi?id=93263
1699
1700         Reviewed by Jocelyn Turcotte.
1701
1702         Do not force fonts to use integer metrics. This was necessary when the fast font path
1703         only worked in integer but is now hindering accurate metrics. This is also required to
1704         make kerning in the fast-path look acceptable
1705
1706         Only enabled for Qt 5.1+ to avoid changing all the baselines for 5.0.
1707
1708         * platform/graphics/qt/FontPlatformDataQt.cpp:
1709         (WebCore::FontPlatformData::FontPlatformData):
1710
1711 2013-03-19  John J. Barton  <johnjbarton@chromium.org>
1712
1713         Web Inspector: Add iframe option to inspectedWindow.eval() extension API
1714         https://bugs.webkit.org/show_bug.cgi?id=106811
1715
1716         Reviewed by Vsevolod Vlasov.
1717
1718         Add a new case to the options processing in inspectedWindow.eval(), look
1719         for option.frameURL <string> and/or option.scriptExecutionContext: <string>, find the
1720         matching JS context in the runtimeModel, and call evaluate() in that
1721         context; or error if the context is not found. 
1722
1723         Test: http/tests/inspector/extensions-iframe-eval.html
1724
1725         * inspector/front-end/ExtensionServer.js:
1726         (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
1727         (WebInspector.ExtensionServer.prototype.):
1728         (WebInspector.ExtensionServer.prototype.evaluate):
1729         * inspector/front-end/ResourceTreeModel.js:
1730         (WebInspector.ResourceTreeModel.prototype.frames):
1731            Added read access to _frames
1732        * inspector/front-end/RuntimeModel.js:
1733         (WebInspector.RuntimeModel.prototype.contextListByFrame):
1734            Added access to a frame's contextList, removed contextByFrameAndSecurityOrigin()
1735         (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
1736            Added access to frame's mainWorldContext, rather than implicit first context.
1737            Now we can go from ResourceTreeModel -> frame -> contextList then either
1738            mainWorldContext() or contextBySecurityOrigin() to access contexts.
1739
1740         * inspector/front-end/ExtensionServer.js:
1741         (WebInspector.ExtensionServer.prototype.):
1742         (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
1743         (WebInspector.ExtensionServer.prototype.evaluate):
1744         * inspector/front-end/ResourceTreeModel.js:
1745         * inspector/front-end/RuntimeModel.js:
1746         (WebInspector.RuntimeModel.prototype.contextListByFrame):
1747         (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
1748
1749         * inspector/front-end/ExtensionServer.js:
1750         (WebInspector.ExtensionServer.prototype._onReload):
1751         (WebInspector.ExtensionServer.prototype.resolveURLToFrame.hasMatchingURL):
1752         (WebInspector.ExtensionServer.prototype.):
1753         (WebInspector.ExtensionServer.prototype.evaluate):
1754         * inspector/front-end/ResourceTreeModel.js:
1755         (WebInspector.ResourceTreeModel.prototype.frames):
1756         * inspector/front-end/RuntimeModel.js:
1757         (WebInspector.RuntimeModel.prototype.contextListByFrame):
1758         (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
1759
1760         * inspector/front-end/ExtensionServer.js:
1761         (WebInspector.ExtensionServer.prototype.resolveURLToFrame.hasMatchingURL):
1762         (WebInspector.ExtensionServer.prototype.):
1763         (WebInspector.ExtensionServer.prototype.evaluate):
1764         * inspector/front-end/ResourceTreeModel.js:
1765         (WebInspector.ResourceTreeModel.prototype.frames):
1766         * inspector/front-end/RuntimeModel.js:
1767         (WebInspector.RuntimeModel.prototype.contextListByFrame):
1768         (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
1769
1770 2013-03-19  Ilya Tikhonovsky  <loislo@chromium.org>
1771
1772         Web Inspector: rename TimelineOverviewWindow to OverviewGrid.Window and fix names for constants.
1773         https://bugs.webkit.org/show_bug.cgi?id=112685
1774
1775         Reviewed by Yury Semikhatsky.
1776
1777         It is the second patch which extracts OverviewGrid from TimelineOverviewPane.
1778         It renames internal components of OverviewGrid.
1779         WebInspector.TimelineOverviewWindow -> WebInspector.OverviewGrid.Window
1780         WebInspector.TimelineOverviewWindow.WindowSelector -> WebInspector.OverviewGrid.WindowSelector
1781
1782         and moves constants from WebInspector.TimelineOverviewWindow namespace to WebInspector.OverviewGrid namespace
1783
1784         * inspector/front-end/TimelineOverviewPane.js:
1785         (WebInspector.TimelineOverviewPane):
1786         (WebInspector.OverviewGrid):
1787         (WebInspector.OverviewGrid.Window):
1788         (WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
1789         (WebInspector.OverviewGrid.Window.prototype._endWindowSelectorDragging):
1790         (WebInspector.OverviewGrid.Window.prototype._startWindowDragging):
1791         (WebInspector.OverviewGrid.Window.prototype._windowDragging):
1792         (WebInspector.OverviewGrid.Window.prototype._moveWindow):
1793         (WebInspector.OverviewGrid.Window.prototype._resizeWindowRight):
1794         (WebInspector.OverviewGrid.Window.prototype._setWindowPosition):
1795         (WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
1796         (WebInspector.OverviewGrid.Window.prototype._zoom):
1797         (WebInspector.OverviewGrid.WindowSelector):
1798         (WebInspector.OverviewGrid.WindowSelector.prototype._createSelectorElement):
1799
1800 2013-03-19  Ilya Tikhonovsky  <loislo@chromium.org>
1801
1802         Web Inspector: move _timelineGrid && _timelineOverviewWindow from TimelineOverviewPane into a new class OverviewGrid.
1803         https://bugs.webkit.org/show_bug.cgi?id=112584
1804
1805         Reviewed by Pavel Feldman.
1806
1807         It is the first path in the set.
1808         The end goal is to extract OverviewGrid with window selectors
1809         into a separate class in separate file and reuse it in CPU FlameChart.
1810
1811         * inspector/front-end/TimelineOverviewPane.js:
1812         (WebInspector.TimelineOverviewPane):
1813         (WebInspector.OverviewGrid):
1814         (WebInspector.OverviewGrid.prototype.get grid):
1815         (WebInspector.OverviewGrid.prototype.get clientWidth):
1816         (WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
1817         (WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
1818         (WebInspector.OverviewGrid.prototype.updateDividers):
1819         (WebInspector.OverviewGrid.prototype.addEventDividers):
1820         (WebInspector.OverviewGrid.prototype.removeEventDividers):
1821         (WebInspector.OverviewGrid.prototype.setWindowPosition):
1822         (WebInspector.OverviewGrid.prototype.reset):
1823         (WebInspector.OverviewGrid.prototype.get windowLeft):
1824         (WebInspector.OverviewGrid.prototype.get windowRight):
1825         (WebInspector.OverviewGrid.prototype.setWindow):
1826         (WebInspector.OverviewGrid.prototype.addEventListener):
1827         (WebInspector.TimelineOverviewPane.prototype.setMode):
1828         (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
1829         (WebInspector.TimelineOverviewPane.prototype._update):
1830         (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
1831         (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
1832         (WebInspector.TimelineOverviewPane.prototype._reset):
1833         (WebInspector.TimelineOverviewPane.prototype.windowLeft):
1834         (WebInspector.TimelineOverviewPane.prototype.windowRight):
1835         (WebInspector.TimelineOverviewPane.prototype._updateWindow):
1836
1837 2013-03-19  Vladislav Kaznacheev  <kaznacheev@chromium.org>
1838
1839         Web Inspector: Add Inspector.targetCrashed event to Inspector protocol.
1840         https://bugs.webkit.org/show_bug.cgi?id=112669
1841
1842         Added Inspector.targetCrashed event and handled it on the front end.
1843         Showing a modal dialog similar to the one displayed when the remote
1844         debugging target is disconnected.
1845
1846         Reviewed by Pavel Feldman.
1847
1848         * English.lproj/localizedStrings.js:
1849         * inspector/Inspector.json:
1850         * inspector/front-end/HelpScreen.js:
1851         (WebInspector.HelpScreenUntilReload):
1852         (WebInspector.HelpScreenUntilReload.prototype.willHide):
1853         * inspector/front-end/inspector.js:
1854         (WebInspector.targetCrashed):
1855
1856 2013-03-19  Mario Sanchez Prada  <mario.prada@samsung.com>
1857
1858         [GTK] Wrong guard USE(GLX) in RedirectedXCompositeWindow
1859         https://bugs.webkit.org/show_bug.cgi?id=112600
1860
1861         Reviewed by Martin Robinson.
1862
1863         Replace USE(GLX) condition with USE(OPENGL) && PLATFORM(X11).
1864
1865         * platform/gtk/RedirectedXCompositeWindow.cpp: Updated guard.
1866         * platform/gtk/RedirectedXCompositeWindow.h: Ditto.
1867
1868 2013-03-19  Mihnea Ovidenie  <mihnea@adobe.com>
1869
1870         [CSSRegions] Crash reflowing content in variable width regions
1871         https://bugs.webkit.org/show_bug.cgi?id=112515
1872
1873         Reviewed by David Hyatt.
1874
1875         When removing floats during relayout of a line in a paginated context,
1876         we have to make sure that the floats collection actually has elements before
1877         accessing the last float from the collection.
1878         This situation arises when a block had floats in a previous layout and after
1879         they were removed, m_floatingObjects is not destroyed, only emptied.
1880
1881         Test: fast/regions/crash-reflow-inline-content-in-variable-width-regions.html
1882
1883         * rendering/RenderBlock.cpp:
1884         (WebCore::RenderBlock::removeFloatingObjectsBelow):
1885         * rendering/RenderBlockLineLayout.cpp:
1886         (WebCore::RenderBlock::layoutRunsAndFloats):
1887         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
1888
1889 2013-03-18  Vsevolod Vlasov  <vsevik@chromium.org>
1890
1891         Web Inspector: Debugger scripts should visually differ from network/filesystem files in workspace.
1892         https://bugs.webkit.org/show_bug.cgi?id=112552
1893
1894         Reviewed by Pavel Feldman.
1895
1896         Extracted ContentProviderBasedProjectDelegate from SimpleProjectDelegate.
1897         Implemented DebuggerProjectDelegate for DefaultScriptMapping.
1898         Debugger scripts are now added to workspace with a name starting with [VM] and ending with scriptId.
1899         Added yellow background to debugger scripts editor.
1900
1901         * WebCore.gypi:
1902         * WebCore.vcproj/WebCore.vcproj:
1903         * inspector/compile-front-end.py:
1904         * inspector/front-end/ContentProviderBasedProjectDelegate.js: Added.
1905         * inspector/front-end/DefaultScriptMapping.js:
1906         (WebInspector.DefaultScriptMapping):
1907         (WebInspector.DefaultScriptMapping.prototype.addScript):
1908         (WebInspector.DefaultScriptMapping.prototype._debuggerReset):
1909         (WebInspector.DebuggerProjectDelegate):
1910         (WebInspector.DebuggerProjectDelegate.prototype.id):
1911         (WebInspector.DebuggerProjectDelegate.prototype.type):
1912         (WebInspector.DebuggerProjectDelegate.prototype.displayName):
1913         (WebInspector.DebuggerProjectDelegate.prototype.addScript):
1914         * inspector/front-end/JavaScriptSourceFrame.js:
1915         (WebInspector.JavaScriptSourceFrame):
1916         * inspector/front-end/ParsedURL.js:
1917         (WebInspector.ParsedURL.splitURL):
1918         * inspector/front-end/SimpleWorkspaceProvider.js:
1919         (WebInspector.SimpleProjectDelegate):
1920         (WebInspector.SimpleProjectDelegate.prototype.addFile):
1921         (WebInspector.SimpleProjectDelegate.prototype._ensureUniquePath):
1922         (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
1923         * inspector/front-end/WebKit.qrc:
1924         * inspector/front-end/Workspace.js:
1925         (WebInspector.Workspace.prototype.uiSourceCodeForURL):
1926         * inspector/front-end/inspector.html:
1927         * inspector/front-end/javaScriptSourceFrame.css: Added.
1928         (.source-frame-debugger-script):
1929
1930 2013-03-19  Andrey Lushnikov  <lushnikov@chromium.org>
1931
1932         Web Inspector: [CodeMirror] add smart braces functionality
1933         https://bugs.webkit.org/show_bug.cgi?id=112138
1934
1935         Reviewed by Vsevolod Vlasov.
1936
1937         No new tests.
1938
1939         Add closebrackets add-on to codemirror which implements smart braces
1940         functionality and guard this setting with the "Text Editor smart
1941         braces" experiment.
1942
1943         * WebCore.gypi:
1944         * WebCore.vcproj/WebCore.vcproj:
1945         * WebCore.vcxproj/WebCore.vcxproj:
1946         * WebCore.vcxproj/WebCore.vcxproj.filters:
1947         * inspector/front-end/CodeMirrorTextEditor.js:
1948         * inspector/front-end/WebKit.qrc:
1949         * inspector/front-end/cm/closebrackets.js: Added.
1950         (.):
1951
1952 2013-03-19  Andrey Lushnikov  <lushnikov@chromium.org>
1953
1954         Web Inspector: Avoid forcing text editor resize
1955         https://bugs.webkit.org/show_bug.cgi?id=112581
1956
1957         Reviewed by Vsevolod Vlasov.
1958
1959         No new tests.
1960
1961         Avoid unnecessary text editor resizing by removing line decoration
1962         via removeDecoration method instead of DOM remove operation.
1963
1964         * inspector/front-end/SourceFrame.js:
1965         (WebInspector.SourceFrame.prototype.clearMessages):
1966         (WebInspector.SourceFrame.prototype._setTextEditorDecorations):
1967
1968 2013-03-19  Andrey Lushnikov  <lushnikov@chromium.org>
1969
1970         Web Inspector: [CodeMirror] fix cursor movements
1971         https://bugs.webkit.org/show_bug.cgi?id=112555
1972
1973         Reviewed by Vsevolod Vlasov.
1974
1975         No new tests.
1976
1977         - Update CodeMirror to ToT to include its improved cursor movement
1978         - Add a small keymap to force cursor stop on both line endings and line
1979         starts.
1980
1981         * inspector/front-end/CodeMirrorTextEditor.js:
1982         (WebInspector.CodeMirrorTextEditor):
1983         (WebInspector.CodeMirrorTextEditor.FixWordMovement):
1984         (WebInspector.CodeMirrorTextEditor.FixWordMovement.moveRight):
1985         * inspector/front-end/cm/codemirror.css:
1986         (.CodeMirror div.CodeMirror-cursor):
1987         (.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor):
1988         (.CodeMirror):
1989         * inspector/front-end/cm/codemirror.js:
1990         (window.CodeMirror):
1991         (window.CodeMirror.):
1992
1993 2013-03-19  Adam Barth  <abarth@webkit.org>
1994
1995         [chromium] Regression(143825): select elements don't open when there is a marquee on the page
1996         https://bugs.webkit.org/show_bug.cgi?id=111278
1997
1998         Unreviewed.
1999
2000         This patch is a rollout of http://trac.webkit.org/changeset/143825. The
2001         original patch caused a regression in the Chromium port.
2002
2003         * rendering/RenderLayer.cpp:
2004         (WebCore::RenderLayer::scrollTo):
2005
2006 2013-03-19  Alexander Pavlov  <apavlov@chromium.org>
2007
2008         Web Inspector: [Styles] Matching @host rule children are not displayed
2009         https://bugs.webkit.org/show_bug.cgi?id=112664
2010
2011         Reviewed by Vsevolod Vlasov.
2012
2013         Process host rules' contents akin to media rules' when handling the CSS model and source data.
2014
2015         Test: platform/chromium/inspector/styles/host-rules.html
2016
2017         * inspector/InspectorStyleSheet.cpp:
2018         (flattenSourceData):
2019         (WebCore::asCSSRuleList):
2020
2021 2013-03-18  Alexander Pavlov  <apavlov@chromium.org>
2022
2023         Web Inspector: [Styles] The "inherit" property value should be suggested for all properties
2024         https://bugs.webkit.org/show_bug.cgi?id=112662
2025
2026         Reviewed by Vsevolod Vlasov.
2027
2028         * inspector/front-end/CSSMetadata.js:
2029         (WebInspector.CSSMetadata.keywordsForProperty):
2030
2031 2013-03-18  David Kilzer  <ddkilzer@apple.com>
2032
2033         BUILD FIX (r146088): ResourceRequest::cfURLRequest() is defined twice on iOS
2034         <http://webkit.org/b/112387>
2035
2036         * platform/network/mac/ResourceRequestMac.mm:
2037         (WebCore::ResourceRequest::cfURLRequest): Move method into
2038         !USE(CFNETWORK) section since it's also defined in
2039         cf/ResourceRequestCFNet.cpp on iOS.
2040
2041 2013-03-18  Alpha Lam  <hclam@chromium.org>
2042
2043         [chromium] More tracing in deferred image decoding
2044         https://bugs.webkit.org/show_bug.cgi?id=112648
2045
2046         Reviewed by James Robinson.
2047
2048         Adding more trace events for a couple things in deferred image decoding path:
2049         - Time span for each lock pixels of SkPixelRef.
2050         - Time spent on decoding, scaling and pruning. Also the stack trace for these events.
2051         - Memory usage and number of cached entries.
2052         - Number of decode & scale operations done per image.
2053
2054         No test as this just add tracing information and no behavior change.
2055
2056         * platform/graphics/chromium/ImageDecodingStore.cpp:
2057         (WebCore::ImageDecodingStore::prune):
2058         (WebCore::ImageDecodingStore::insertCacheInternal):
2059         (WebCore::ImageDecodingStore::removeFromCacheInternal):
2060         * platform/graphics/chromium/ImageFrameGenerator.cpp:
2061         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
2062         (WebCore::ImageFrameGenerator::decodeAndScale):
2063         (WebCore::ImageFrameGenerator::tryToScale):
2064         (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
2065         (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
2066         (WebCore::ImageFrameGenerator::decode):
2067         * platform/graphics/chromium/ImageFrameGenerator.h:
2068         (ImageFrameGenerator):
2069         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
2070         (WebCore::LazyDecodingPixelRef::onLockPixels):
2071         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
2072         (WebCore::LazyDecodingPixelRef::PrepareToDecode):
2073
2074 2013-03-18  Kentaro Hara  <haraken@chromium.org>
2075
2076         Unreviewed. Rebaselined run-bindings-tests after r146161.
2077
2078         * bindings/scripts/test/JS/JSTestObj.cpp:
2079         (WebCore::setJSTestObjEnumAttr):
2080         (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
2081         * bindings/scripts/test/V8/V8TestObj.cpp:
2082         (WebCore::ConfigureV8TestObjTemplate):
2083
2084 2013-03-18  Robert Flack  <flackr@chromium.org>
2085
2086         [chromium] Small pixel differences in scroll bars after r145844
2087         https://bugs.webkit.org/show_bug.cgi?id=112384
2088
2089         Reviewed by Kenneth Russell.
2090
2091         Tests: fast/forms/basic-textareas-quirks.html
2092                fast/forms/basic-textareas.html
2093                fast/overflow/overflow-x-y.html
2094                fast/parser/open-comment-in-textarea.html
2095                fast/replaced/width100percent-textarea.html
2096
2097         * platform/chromium/ScrollbarThemeChromium.cpp:
2098         (WebCore::ScrollbarThemeChromium::trackRect):
2099
2100 2013-03-18  Brent Fulgham  <bfulgham@webkit.org>
2101
2102         [WinCairo] Unreviewed build correction.
2103
2104         The "ImageDecoder.h" file was improperly tagged as a source file to
2105         build, causing a build failure on initial build attempts. Subsequent
2106         or incremental builds would work.
2107
2108         * WebCore.vcxproj/WebCore.vcxproj: Exclude CG-specific font files.
2109         Switch 'ImageDecoder.h' to proper source file type.
2110         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
2111
2112 2013-03-18  James Robinson  <jamesr@chromium.org>
2113
2114         [chromium] Remove unused type WebTransformationMatrix
2115         https://bugs.webkit.org/show_bug.cgi?id=112634
2116
2117         Reviewed by Adam Barth.
2118
2119         * WebCore.gypi:
2120         * platform/chromium/support/WebTransformationMatrix.cpp: Removed.
2121
2122 2013-03-18  Arnaud Renevier  <a.renevier@sisa.samsung.com>
2123
2124         Add IDL 'enum' support to CodeGeneratorJS.pm
2125         https://bugs.webkit.org/show_bug.cgi?id=112475
2126
2127         Reviewed by Kentaro Hara.
2128
2129         This adds support for enumerations in JS, adding validation checking
2130         to setters.
2131         It also does validation checking to methods, and a new method
2132         methodWithEnumArg in TestObj.idl
2133
2134         Test: bindings/scripts/test/TestObj.idl
2135
2136         * bindings/scripts/CodeGeneratorJS.pm:
2137         (GenerateImplementation):
2138         (GenerateParametersCheck):
2139         (NativeToJSValue):
2140         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
2141         (WebDOMTestObj::methodWithEnumArg):
2142         * bindings/scripts/test/CPP/WebDOMTestObj.h:
2143         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2144         (webkit_dom_test_obj_method_with_enum_arg):
2145         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2146         * bindings/scripts/test/JS/JSTestObj.cpp:
2147         (WebCore):
2148         (WebCore::jsTestObjEnumAttr):
2149         (WebCore::setJSTestObjEnumAttr):
2150         (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
2151         * bindings/scripts/test/JS/JSTestObj.h:
2152         (WebCore):
2153         * bindings/scripts/test/ObjC/DOMTestObj.h:
2154         * bindings/scripts/test/ObjC/DOMTestObj.mm:
2155         (-[DOMTestObj methodWithEnumArg:]):
2156         * bindings/scripts/test/TestObj.idl:
2157         * bindings/scripts/test/V8/V8TestObj.cpp:
2158         (WebCore::TestObjV8Internal::methodWithEnumArgMethod):
2159         (TestObjV8Internal):
2160         (WebCore::TestObjV8Internal::methodWithEnumArgMethodCallback):
2161         (WebCore::ConfigureV8TestObjTemplate):
2162
2163 2013-03-18  Sam Weinig  <sam@webkit.org>
2164
2165         Need a bundle SPI to generate a snapshot of a specific DOM node (like [DOMNode renderedImage])
2166         <rdar://problem/13148631>
2167         https://bugs.webkit.org/show_bug.cgi?id=110034
2168
2169         Reviewed by Tim Horton.
2170
2171         * WebCore.exp.in:
2172         Add some necessary exports.
2173
2174 2013-03-18  Brent Fulgham  <bfulgham@webkit.org>
2175
2176         [WinCairo] Build WebCore under VS2010
2177         https://bugs.webkit.org/show_bug.cgi?id=112637
2178
2179         Reviewed by Tim Horton.
2180
2181         * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Extend project
2182         with WinCairo-specific build targets.
2183         * WebCore.vcxproj/QTMovieWin/QTMovieWinCairoDebug.props: Added.
2184         * WebCore.vcxproj/QTMovieWin/QTMovieWinCairoRelease.props: Added.
2185         * WebCore.vcxproj/WebCore.vcxproj: Update to build WinCairo version
2186         of code.
2187         * WebCore.vcxproj/WebCoreCURL.props: Added.
2188         * WebCore.vcxproj/WebCoreCairo.props: Added.
2189         * WebCore.vcxproj/WebCoreDebugWinCairo.props: Added.
2190         * WebCore.vcxproj/WebCoreGenerated.vcxproj:
2191         * WebCore.vcxproj/WebCoreGeneratedDebugWinCairo.props: Added.
2192         * WebCore.vcxproj/WebCoreGeneratedReleaseWinCairo.props: Added.
2193         * WebCore.vcxproj/WebCoreGeneratedWinCairo.make: Added.
2194         * WebCore.vcxproj/WebCoreGeneratedWinCairoCommon.props: Added.
2195         * WebCore.vcxproj/WebCoreReleaseWinCairo.props: Added.
2196         * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
2197         * WebCorePrefix.h: Update header to not include Apple-specific
2198         headers during WinCairo build.
2199
2200 2013-03-18  Joshua Bell <jsbell@chromium.org>
2201
2202         IDB Cursor continue moves one item at a time
2203         https://bugs.webkit.org/show_bug.cgi?id=109972
2204
2205         Reviewed by Tony Chang.
2206
2207         IndexedDB: Use seek on the underlying levelDB iterator to implement the continue operation
2208         on a cursor, instead of advancing one item at a time. On a simple test in Chrome - open a
2209         key cursor on an index w/ 100 items, then do continue(50), rinse and repeat - this cuts the
2210         time 50% (850c/s to 1700c/s). (Original patch c/o Pankaj Kakkar <pankaj@google.com>)
2211
2212         Covered by existing storage/indexeddb cursor tests; just a performance optimization.
2213
2214         * Modules/indexeddb/IDBBackingStore.cpp:
2215         (WebCore::IDBBackingStore::Cursor::continueFunction): Special case first iteration w/ key
2216         to use leveldb seek (forward cursors only, since reverse seek isn't exposed).
2217         (WebCore::ObjectStoreKeyCursorImpl::encodeKey): Helper for encoding key to seek to.
2218         (WebCore::ObjectStoreCursorImpl::encodeKey): Ditto.
2219         (WebCore::IndexKeyCursorImpl::encodeKey): Ditto.
2220         (WebCore::IndexCursorImpl::encodeKey): Ditto.
2221         (WebCore::objectStoreCursorOptions): Store IDs for encodeKey() to use.
2222         (WebCore::indexCursorOptions): Ditto.
2223         * Modules/indexeddb/IDBBackingStore.h:
2224         (CursorOptions): Storage for IDs.
2225         (Cursor): Add encodeKey() to interface.
2226
2227 2013-03-18  Alexey Proskuryakov  <ap@apple.com>
2228
2229         MessagePortChannel::EventData should not be exposed
2230         https://bugs.webkit.org/show_bug.cgi?id=112635
2231
2232         Reviewed by Geoff Garen.
2233
2234         MessagePortChannel::EventData is an implementation detail that's only needed to
2235         store events in MessageQueue. Other existing code already gets away without it,
2236         just passing message and ports separately.
2237
2238         * dom/MessagePort.cpp:
2239         (WebCore::MessagePort::postMessage):
2240         (WebCore::MessagePort::dispatchMessages):
2241         * dom/MessagePortChannel.cpp:
2242         * dom/MessagePortChannel.h:
2243         * dom/default/PlatformMessagePortChannel.cpp:
2244         (WebCore::PlatformMessagePortChannel::EventData::create):
2245         (WebCore::PlatformMessagePortChannel::EventData::EventData):
2246         (WebCore::MessagePortChannel::postMessageToRemote):
2247         (WebCore::MessagePortChannel::tryGetMessageFromRemote):
2248         * dom/default/PlatformMessagePortChannel.h:
2249         (WebCore::PlatformMessagePortChannel::EventData::message):
2250         (WebCore::PlatformMessagePortChannel::EventData::channels):
2251         (PlatformMessagePortChannel):
2252         (WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
2253         (WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):
2254         * dom/default/chromium/PlatformMessagePortChannelChromium.cpp:
2255         (WebCore::MessagePortChannel::postMessageToRemote):
2256         (WebCore::MessagePortChannel::tryGetMessageFromRemote):
2257         (WebCore::PlatformMessagePortChannel::postMessageToRemote):
2258         (WebCore::PlatformMessagePortChannel::tryGetMessageFromRemote):
2259         * dom/default/chromium/PlatformMessagePortChannelChromium.h:
2260
2261 2013-03-18  Tom Sepez  <tsepez@chromium.org>
2262
2263         [v8] Suppress binding integrity check of HTMLContentElement.
2264         https://bugs.webkit.org/show_bug.cgi?id=112613
2265
2266         Reviewed by Adam Barth.
2267
2268         Patch is correct so long as fast/dom/shadow/content-element-user-agent-shadow.html
2269         continues to pass.
2270
2271         * html/shadow/HTMLContentElement.idl:
2272
2273 2013-03-18  Dominic Mazzoni  <dmazzoni@google.com>
2274
2275         Support Windows HTMLSelectElement keystrokes on Chromium win
2276         https://bugs.webkit.org/show_bug.cgi?id=112460
2277
2278         Reviewed by Kent Tamura.
2279
2280         Compile in the windows-specific variant of
2281         HTMLSelectElement::platformHandleKeydownEvent
2282         on Chromium win, in addition to PLATFORM(WIN).
2283
2284         * WebCore.gypi:
2285             Add html/HTMLSelectElementWin.cpp.
2286         * html/HTMLSelectElement.cpp:
2287             Don't compile generic platformHandleKeydownEvent on
2288             Chromium win.
2289         * html/HTMLSelectElementWin.cpp:
2290             Only compile platformHandleKeydownEvent on Windows.
2291             Fix compile error in assertion.
2292         (WebCore):
2293
2294 2013-03-18  Mike West  <mkwst@chromium.org>
2295
2296         CSP 1.1: Schemeless source expressions match HTTPS resources on HTTP sites.
2297         https://bugs.webkit.org/show_bug.cgi?id=112573
2298
2299         Reviewed by Adam Barth.
2300
2301         Currently, the directive 'script-src example.com' would match only
2302         scripts served from 'http://example.com' when served on an HTTP site,
2303         and only scripts served from 'https://example.com' when served on an
2304         HTTPS site. This patch changes the matching behavior for ports that
2305         have enabled CSP_NEXT in order to encourage use of HTTPS resources by
2306         allow schemeless source expressions to match HTTPS origins when on
2307         HTTP sites.
2308
2309         Thread: http://lists.w3.org/Archives/Public/public-webappsec/2013Mar/0013.html
2310         Spec change: https://dvcs.w3.org/hg/content-security-policy/rev/a7dc8820946e
2311
2312         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-10.html
2313
2314         * page/ContentSecurityPolicy.cpp:
2315         (WebCore::CSPSource::CSPSource):
2316             Pass the current policy into CSPSource so that we can check the
2317             protected resource's scheme inside schemeMatches, rather than
2318             overwriting the source expression's scheme before creating the
2319             CSPSource.
2320         (WebCore::CSPSource::schemeMatches):
2321             If CSP_NEXT is enabled, ensure that HTTPS resources match the
2322             HTTP scheme when loaded on HTTP pages with schemaless source
2323             expressions.
2324         (WebCore::CSPSource::portMatches):
2325             Check the port against the URL's scheme: if m_scheme isn't
2326             empty, this will match it. If m_scheme is empty, we can't
2327             do a strict match against it, nor can we do a strict match
2328             against the protected resource's port. Checking the URL's
2329             port against the default port for its scheme solves this
2330             problem elegantly.
2331         (WebCore::CSPSourceList::parse):
2332         (WebCore::CSPSourceList::addSourceSelf):
2333             Pass in the policy when creating a CSPSource object.
2334
2335 2013-03-15  Jer Noble  <jer.noble@apple.com>
2336
2337         Text track cues do not update sizes when entering or exiting full screen.
2338         https://bugs.webkit.org/show_bug.cgi?id=112472
2339
2340         Reviewed by Eric Carlson.
2341
2342         The style properties of the TextCueBoxes were not being updated after the size of the video bounds changed.
2343         Because getDisplayTree() will not do it when the cue itself has not changed, explicitly call videoSizeDidChange()
2344         from updateSizes().
2345
2346         * html/shadow/MediaControlElements.cpp:
2347         (WebCore::MediaControlTextTrackContainerElement::updateSizes): call videoSizeDidChange() on every active cue.
2348         * html/track/TextTrackCue.h:
2349         (WebCore::TextTrackCue::hasDisplayTree): returns whether or not the cue has created a display tree without side effects.
2350         (WebCore::TextTrackCue::videoSizeDidChange): Overridable empty method.
2351         * html/track/TextTrackCueGeneric.cpp:
2352         (WebCore::TextTrackCueGeneric::videoSizeDidChange): Update the CSS height attribute of the cue box using the new video size.
2353         * html/track/TextTrackCueGeneric.h:
2354
2355 2013-03-18  Mike West  <mkwst@chromium.org>
2356
2357         CSP 1.1: Add 'effective-directive' to violation reports.
2358         https://bugs.webkit.org/show_bug.cgi?id=112568
2359
2360         Reviewed by Adam Barth.
2361
2362         https://dvcs.w3.org/hg/content-security-policy/rev/bc2bb0e5072a
2363         introduced an 'effective-directive' field on CSP violation reports,
2364         which allows developers to distinguish between resource types when
2365         'default-src' is the violated directive.
2366
2367         This patch implements the new field behind the CSP_NEXT flag.
2368
2369         Test: http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive.html
2370
2371         * page/ContentSecurityPolicy.cpp:
2372         (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
2373         (WebCore::CSPDirectiveList::reportViolation):
2374             These methods now accept an additional parameter to pipe the
2375             effective directive from the initial callsite down into
2376             ContentSecurityPolicy::reportViolation.
2377         (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
2378         (WebCore::CSPDirectiveList::checkNonceAndReportViolation):
2379         (WebCore::CSPDirectiveList::checkMediaTypeAndReportViolation):
2380         (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
2381         (WebCore::CSPDirectiveList::allowScriptFromSource):
2382         (WebCore::CSPDirectiveList::allowObjectFromSource):
2383         (WebCore::CSPDirectiveList::allowChildFrameFromSource):
2384         (WebCore::CSPDirectiveList::allowImageFromSource):
2385         (WebCore::CSPDirectiveList::allowStyleFromSource):
2386         (WebCore::CSPDirectiveList::allowFontFromSource):
2387         (WebCore::CSPDirectiveList::allowMediaFromSource):
2388         (WebCore::CSPDirectiveList::allowConnectToSource):
2389         (WebCore::CSPDirectiveList::allowFormAction):
2390             These methods now pass the effective directive name down
2391             into checkSourceAndReportViolation or reportViolation.
2392         (WebCore::ContentSecurityPolicy::reportViolation):
2393         * page/ContentSecurityPolicy.h:
2394             This method now accepts a new parameter that carries
2395             the effective directive name. If CSP_NEXT is enabled,
2396             the field is added to the violation report before it's
2397             sent out into the world.
2398
2399 2013-03-18  W. James MacLean  <wjmaclean@chromium.org>
2400
2401         [chromium] Remove NCCH code that relies on boundsContainsPageScale().
2402         https://bugs.webkit.org/show_bug.cgi?id=112465
2403
2404         Reviewed by James Robinson.
2405
2406         The boundsContainsPageScale() API is going away, remove code that
2407         depends on it. Uses existing tests as no behaviour change.
2408
2409         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2410         (WebCore::GraphicsLayerChromium::setAppliesPageScale):
2411         (WebCore::GraphicsLayerChromium::appliesPageScale):
2412
2413 2013-03-18  Alec Flett  <alecflett@chromium.org>
2414
2415         IndexedDB: Protect against key prefix overflows
2416         https://bugs.webkit.org/show_bug.cgi?id=111138
2417
2418         Reviewed by Tony Chang.
2419
2420         This reworks the boundary checking for all databaseId,
2421         objectStoreId, and indexId, including negative and
2422         zero-based ids. All entrypoints into IDBLevelDBCoding
2423         are protected with explicit checks and all internal
2424         uses of KeyPrefix are protected with ASSERTs in the
2425         various constructors.
2426
2427         Tests: WebKit unit tests IDBBackingStoreTest.cpp in WebKit/chromium
2428
2429         * Modules/indexeddb/IDBBackingStore.h: Make all public methods boolean-based for errors.
2430         * Modules/indexeddb/IDBLevelDBCoding.h: Add methods for checking databaseId, objectStoreId, and indexId.
2431
2432 2013-03-18  Roger Fong  <roger_fong@apple.com>
2433
2434         AppleWin VS2010 Debug configuration build fix.
2435
2436         * WebCore.vcxproj/WebCore.vcxproj:
2437
2438 2013-03-18  Alexey Proskuryakov  <ap@apple.com>
2439
2440         https://bugs.webkit.org/show_bug.cgi?id=112627
2441         MessagePort::disentangle() takes an ExceptionCode argument without any need
2442
2443         Reviewed by Geoffrey Garen.
2444
2445         MessagePort::disentangle() is called in two places. One has ASSERT_NO_EXCEPTION,
2446         and another fails to check the exception, but clearly cannot get one.
2447
2448         This function is also not exposed to bindings.
2449
2450         * dom/MessagePort.cpp:
2451         (WebCore::MessagePort::disentangle):
2452         (WebCore::MessagePort::disentanglePorts):
2453         * dom/MessagePort.h:
2454         * workers/SharedWorker.cpp:
2455         (WebCore::SharedWorker::create):
2456         Also removed some unhelpful comments.
2457
2458 2013-03-18  Xianzhu Wang  <wangxianzhu@chromium.org>
2459
2460         Variant of non-primary fell-back SVGFont causes crash.
2461         https://bugs.webkit.org/show_bug.cgi?id=112367
2462
2463         Reviewed by Stephen Chenney.
2464
2465         Don't go to PlatformFontData path for SimpleFontData::createScaledFontData()
2466         for SVG fonts.
2467
2468         Test: svg/css/font-face-variant-crash.html
2469
2470         * platform/graphics/SimpleFontData.cpp:
2471         (WebCore::SimpleFontData::~SimpleFontData):
2472         (WebCore::SimpleFontData::createScaledFontData): Don't go to PlatformFontData path for SVG fonts.
2473         (WebCore):
2474         * platform/graphics/SimpleFontData.h:
2475         (SimpleFontData): Added createScaledFontData and renamed the original createScaledFontData to platformCreateScaledFontData.
2476                           BTW, Removed unreferenced commonInit.
2477         * platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp:
2478         (WebCore::SimpleFontData::platformCreateScaledFontData): Renamed from createScaledFontData.
2479         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
2480         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
2481         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
2482         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
2483         * platform/graphics/mac/SimpleFontDataMac.mm:
2484         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
2485         * platform/graphics/qt/SimpleFontDataQt.cpp:
2486         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
2487         * platform/graphics/skia/SimpleFontDataSkia.cpp:
2488         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
2489         * platform/graphics/win/SimpleFontDataWin.cpp:
2490         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
2491         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
2492         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
2493         * platform/graphics/wx/SimpleFontDataWx.cpp:
2494         (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
2495
2496 2013-03-18  Victor Carbune  <vcarbune@chromium.org>
2497
2498         Determine text direction for rendering a TextTrackCue
2499         https://bugs.webkit.org/show_bug.cgi?id=79749
2500
2501         Reviewed by Levi Weintraub.
2502
2503         The rendering rules for WebVTT cues are slightly different
2504         depending on the directionality determined from the characters
2505         of the cue text. This patch implements the preliminary step
2506         to be able to take directionality into account.
2507
2508         It iterates through the cue characters and setting the CSS
2509         directionality to the one of the first strong directional character.
2510
2511         Test: media/track/track-cue-rendering-rtl.html
2512
2513         * html/track/TextTrackCue.cpp:
2514         (WebCore::TextTrackCueBox::applyCSSProperties): Applies the determined
2515         direction.
2516         (WebCore::TextTrackCue::TextTrackCue): Sets the default value for the
2517         display direction.
2518         (WebCore::isCueParagraphSeparator): Tests for explicit unicode characters
2519         that are paragraph separators.
2520         (WebCore):
2521         (WebCore::TextTrackCue::determineTextDirection): Determined the direction
2522         by the first strong directional character found.
2523         (WebCore::TextTrackCue::calculateDisplayParameters): Updated.
2524         (WebCore::TextTrackCue::getCSSWritingDirection): Return the determined CSS
2525         writing direction.
2526         * html/track/TextTrackCue.h:
2527         (TextTrackCue):
2528
2529 2013-03-18  Hans Wennborg  <hans@chromium.org>
2530
2531         Fix GridTrackSize::operator==
2532         https://bugs.webkit.org/show_bug.cgi?id=112501
2533
2534         Reviewed by Eric Seidel.
2535
2536         There was a missing "other." in the function.
2537
2538         This was found by experimenting with a potential new Clang warning.
2539
2540         Test: fast/css-grid-layout/grid-dynamic-updates-relayout.html
2541
2542         * rendering/style/GridTrackSize.h:
2543         (WebCore::GridTrackSize::operator==):
2544
2545 2013-03-18  Alec Flett  <alecflett@chromium.org>
2546
2547         Inspector: [Chromium] http/tests/inspector/indexeddb/database-data.html ASSERT on Win7 following r133855
2548         https://bugs.webkit.org/show_bug.cgi?id=101618
2549
2550         Deactivate transactions created by the inspector, before
2551         they are reactivated by IndexedDB. This puts transactions
2552         in an identical state as when they are created by scripts.
2553
2554         Reviewed by Vsevolod Vlasov.
2555
2556         Test: http/tests/inspector/indexeddb/database-data.html
2557
2558         * inspector/InspectorIndexedDBAgent.cpp: Make transactions inactive upon leaving the inspector code.
2559
2560 2013-03-15  Jeffrey Pfau  <jpfau@apple.com>
2561
2562         Allow blocking of application cache in third-party contexts
2563         https://bugs.webkit.org/show_bug.cgi?id=112288
2564
2565         Reviewed by Adam Barth.
2566
2567         Return early if we can't access the application cache due to security
2568         restrictions.
2569
2570         Tests: http/tests/security/cross-origin-appcache-allowed.html
2571                http/tests/security/cross-origin-appcache.html
2572                http/tests/security/same-origin-appcache-blocked.html
2573
2574         * loader/appcache/ApplicationCacheGroup.cpp:
2575         (WebCore::ApplicationCacheGroup::selectCache):
2576         (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
2577         * page/SecurityOrigin.h:
2578         (WebCore::SecurityOrigin::canAccessApplicationCache):
2579
2580 2013-03-18  Vsevolod Vlasov  <vsevik@chromium.org>
2581
2582         Web Inspector: Script should know nothing about disabled source mappings.
2583         https://bugs.webkit.org/show_bug.cgi?id=112580
2584
2585         Reviewed by Pavel Feldman.
2586
2587         ResourceScriptMapping handles diverged uiSourceCodes internally now.
2588
2589         Tested in inspector/debugger/live-edit-breakpoints.html already.
2590
2591         * inspector/front-end/ResourceScriptMapping.js:
2592         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
2593         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
2594         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
2595         * inspector/front-end/Script.js:
2596         (WebInspector.Script.prototype.rawLocationToUILocation):
2597
2598 2013-03-18  Alexey Proskuryakov  <ap@apple.com>
2599
2600         Update MessagePort terminology to match HTML5
2601         https://bugs.webkit.org/show_bug.cgi?id=112611
2602
2603         Reviewed by Anders Carlsson.
2604
2605         Transferable objects are "neutered" when transfered. Cloning is a different operation.
2606
2607         * dom/MessagePort.cpp:
2608         (WebCore::MessagePort::disentanglePorts):
2609         * dom/MessagePort.h:
2610         (WebCore::MessagePort::isEntangled):
2611         (WebCore::MessagePort::isNeutered):
2612
2613 2013-03-18  Roger Fong  <roger_fong@apple.com>
2614
2615         AppleWin VS2010 build fix.
2616
2617         * WebCore.vcxproj/WebCore.vcxproj:
2618         * WebCore.vcxproj/WebCore.vcxproj.filters:
2619
2620 2013-03-18  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
2621
2622         [css3-text] Add rendering support for -webkit-text-underline-position
2623         https://bugs.webkit.org/show_bug.cgi?id=102795
2624
2625         Reviewed by Levi Weintraub.
2626
2627         This patch implements rendering support for values [ auto | alphabetic | under ]
2628         of CSS3 property text-underline-position. We don't fully match the specification
2629         as we don't support [ left | right ] and this is left for another implementation
2630         as the rendering will need to be added.
2631
2632         Tests: fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-all.html
2633                fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic.html
2634                fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto.html
2635                fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under-out-of-flow.html
2636                fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under.html
2637
2638         * rendering/InlineFlowBox.cpp:
2639         (WebCore::InlineFlowBox::computeMaxLogicalTop): Added method to compute maximal logical top among all chidren of
2640         this InlineTextBox.
2641         * rendering/InlineFlowBox.h:
2642         (InlineFlowBox):
2643         * rendering/InlineTextBox.cpp:
2644         (WebCore::computeUnderlineOffset): Added method to compute offset for text-underline-position property.
2645         (WebCore::InlineTextBox::paintDecoration): Paint decoration at position calculated using computeUnderlineOffset().
2646         * rendering/RootInlineBox.cpp:
2647         (WebCore::RootInlineBox::RootInlineBox):
2648         (WebCore::RootInlineBox::alignBoxesInBlockDirection): Call method to compute maximal logical top among all
2649         children of this RootInlineBox.
2650         * rendering/RootInlineBox.h:
2651         (RootInlineBox):
2652         (WebCore::RootInlineBox::maxLogicalTop): Added getter for m_maxLogicalTop class member.
2653         * rendering/style/RenderStyle.h: Added the usual getter / setter / initial methods for text-underline-position
2654         property
2655
2656 2013-03-18  Christian Biesinger  <cbiesinger@chromium.org>
2657
2658         Convert old flexbox uses in html.css to new flexbox (non-<select>)
2659         https://bugs.webkit.org/show_bug.cgi?id=110837
2660
2661         Reviewed by Ojan Vafai.
2662
2663         No new tests (No change in behaviour)
2664
2665         * css/html.css:
2666         (input::-webkit-clear-button):
2667         Missed this one in the original patch.
2668
2669 2013-03-18  Wei James  <james.wei@intel.com>
2670
2671         AudioBasicProcessorNode need to check for deferred updating of output channels
2672         https://bugs.webkit.org/show_bug.cgi?id=112544
2673
2674         There can in rare cases be a slight delay before the output
2675         bus is updated to the new number of channels because of tryLocks() in the
2676         context's updating system but the processor already updated to the new
2677         number of channels, so need to check the channel number before processing.
2678
2679         Reviewed by Chris Rogers.
2680
2681         * Modules/webaudio/AudioBasicProcessorNode.cpp:
2682         (WebCore::AudioBasicProcessorNode::process):
2683         * Modules/webaudio/WaveShaperProcessor.cpp:
2684         (WebCore::WaveShaperProcessor::process):
2685         * platform/audio/AudioDSPKernelProcessor.cpp:
2686         (WebCore::AudioDSPKernelProcessor::AudioDSPKernelProcessor):
2687         * platform/audio/AudioDSPKernelProcessor.h:
2688         (WebCore::AudioDSPKernelProcessor::numberOfChannels):
2689         (AudioDSPKernelProcessor):
2690         * platform/audio/AudioProcessor.h:
2691         (WebCore::AudioProcessor::AudioProcessor):
2692         (AudioProcessor):
2693
2694 2013-03-18  Julien Chaffraix  <jchaffraix@webkit.org>
2695
2696         [CSS Grid Layout] Fix StyleGridData::operator==
2697         https://bugs.webkit.org/show_bug.cgi?id=112574
2698
2699         Reviewed by Ojan Vafai.
2700
2701         Test: fast/css-grid-layout/grid-auto-flow-update.html
2702
2703         * rendering/style/StyleGridData.h:
2704         (WebCore::StyleGridData::operator==):
2705         Fixed a bad comparison that would make us ignore grid-auto-flow changes.
2706
2707 2013-03-18  Rafael Weinstein  <rafaelw@chromium.org>
2708
2709         [HTMLTemplateElement] parseError check in processTemplateEndTag should use hasTagName, not hasLocalName
2710         https://bugs.webkit.org/show_bug.cgi?id=112591
2711
2712         Reviewed by Adam Barth.
2713
2714         No tests needed, change is unobservable.
2715
2716         * html/parser/HTMLTreeBuilder.cpp:
2717         (WebCore::HTMLTreeBuilder::processTemplateEndTag):
2718
2719 2013-03-18  Brady Eidson  <beidson@apple.com>
2720
2721         NetworkProcess should send vm_copied, mmap'ed memory to WebProcesses when a 
2722         resource is already in the disk cache.
2723         <rdar://problem/13414153> and https://bugs.webkit.org/show_bug.cgi?id=112387
2724
2725         Reviewed by Geoff Garen.
2726
2727         No new tests (No change in behavior).
2728
2729         * WebCore.exp.in:
2730
2731         Add a CFURLRequestRef accessor even in the mac NSURL-based loader:
2732         * platform/network/cf/ResourceRequest.h:
2733         * platform/network/mac/ResourceRequestMac.mm:
2734         (WebCore::ResourceRequest::cfURLRequest):
2735
2736 2013-03-18  Dean Jackson  <dino@apple.com>
2737
2738         Only add wordspacing when kerning to actual word ends
2739         https://bugs.webkit.org/show_bug.cgi?id=112507
2740         <rdar://problem/12945869>
2741
2742         Reviewed by Enrica Casucci.
2743
2744         When measuring text, we currently include any word spacing in
2745         the result (it's removed later). When kerning is active, we
2746         were adding the word spacing to every wordMeasurement instance
2747         whether or not it is a separate word. For example, a nested
2748         <span> element would get a wordMeasurement, even though it
2749         should not always get word spacing.
2750
2751         Test: fast/text/word-space-with-kerning-3.html
2752
2753         * rendering/RenderBlockLineLayout.cpp:
2754         (WebCore::setLogicalWidthForTextRun): Test if the current character
2755         referenced by the wordMeasurement is a space character, and add word
2756         spacing only then.
2757
2758 2013-03-18  Tony Chang  <tony@chromium.org>
2759
2760         [chromium] Default background color of listboxes should be white
2761         https://bugs.webkit.org/show_bug.cgi?id=112480
2762
2763         Reviewed by Ojan Vafai.
2764
2765         I think it was an accident that list boxes got the grey background color as a
2766         side effect of trying to get the button styling. In the default GTK+ theme on
2767         Ubuntu, list boxes get a white background. Win and OS X also use white as the
2768         default color.
2769
2770         No new tests, covered by existing pixel tests.
2771
2772         * css/themeChromiumLinux.css:
2773         Narrow the CSS rule that overrides the background color specified in html.css.
2774         We only want to use the button color when a select is using button styling.
2775
2776 2013-03-18  Sheriff Bot  <webkit.review.bot@gmail.com>
2777
2778         Unreviewed, rolling out r146079.
2779         http://trac.webkit.org/changeset/146079
2780         https://bugs.webkit.org/show_bug.cgi?id=112594
2781
2782         many timeline tests failed. (Requested by loislo on #webkit).
2783
2784         * inspector/front-end/TimelineOverviewPane.js:
2785         (WebInspector.TimelineOverviewPane):
2786         (WebInspector.TimelineOverviewPane.prototype.setMode):
2787         (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
2788         (WebInspector.TimelineOverviewPane.prototype._update):
2789         (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
2790         (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
2791         (WebInspector.TimelineOverviewPane.prototype._reset):
2792         (WebInspector.TimelineOverviewPane.prototype.windowLeft):
2793         (WebInspector.TimelineOverviewPane.prototype.windowRight):
2794         (WebInspector.TimelineOverviewPane.prototype._updateWindow):
2795
2796 2013-03-18  Peter Beverloo  <peter@chromium.org>
2797
2798         [Chromium] The <select> element on Android should also switch to new-flexbox
2799         https://bugs.webkit.org/show_bug.cgi?id=112559
2800
2801         Reviewed by Ojan Vafai.
2802
2803         Following r145959, also update themeChromiumAndroid.css to use the new
2804         flexible box CSS properties. Covered by existing tests.
2805
2806         * css/themeChromiumAndroid.css:
2807         (select[size][multiple]):
2808
2809 2013-03-18  Renata Hodovan  <reni@webkit.org>
2810
2811         Assertion faulire in SVGAnimatedPath.
2812         https://bugs.webkit.org/show_bug.cgi?id=106428
2813
2814         Reviewed by Allan Sandfeld Jensen.
2815
2816         The asserts are too restricted. The size must be greater or equal to 1.
2817
2818         Test: svg/animations/animated-path-via-use-debug-crash.svg
2819
2820         * svg/SVGAnimatedPath.cpp:
2821         (WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
2822         (WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal):
2823
2824 2013-03-18  Simon Fraser  <simon.fraser@apple.com>
2825
2826         [Mac] Some tests intermittently asserts in SharedBuffer::releasePurgeableBuffer()
2827         https://bugs.webkit.org/show_bug.cgi?id=105986
2828
2829         Reviewed by Brady Eidson.
2830         
2831         A ResourceBuffer's SharedBuffer can be vended out to other clients,
2832         for example Images, so there's no guarantee that when the
2833         ResourceBuffer only has one ref its SharedBuffer will also have just one.
2834         When this assumption was broken, SharedBuffer::releasePurgeableBuffer()
2835         would assert.
2836         
2837         Ideally SharedBuffer would be entirely encapsulated by ResourceBuffer to
2838         avoid this problem, but ResourceBuffer can't be used by code in platform/.
2839         
2840         Fix by having ResourceBuffer::createPurgeableBuffer() refuse to make
2841         a purgeable buffer if the sharedBuffer has more than one ref.
2842
2843         Tested by existing tests.
2844
2845         * loader/ResourceBuffer.cpp:
2846         (WebCore::ResourceBuffer::createPurgeableBuffer):
2847
2848 2013-03-18  Ilya Tikhonovsky  <loislo@chromium.org>
2849
2850         Web Inspector: move _timelineGrid && _timelineOverviewWindow from TimelineOverviewPane into a new class OverviewGrid.
2851         https://bugs.webkit.org/show_bug.cgi?id=112584
2852
2853         Reviewed by Pavel Feldman.
2854
2855         It is the first path in the set.
2856         The end goal is to extract OverviewGrid with window selectors
2857         into a separate class in separate file and reuse it in CPU FlameChart.
2858
2859         * inspector/front-end/TimelineOverviewPane.js:
2860         (WebInspector.TimelineOverviewPane):
2861         (WebInspector.OverviewGrid):
2862         (WebInspector.OverviewGrid.prototype.get grid):
2863         (WebInspector.OverviewGrid.prototype.get clientWidth):
2864         (WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
2865         (WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
2866         (WebInspector.OverviewGrid.prototype.updateDividers):
2867         (WebInspector.OverviewGrid.prototype.addEventDividers):
2868         (WebInspector.OverviewGrid.prototype.removeEventDividers):
2869         (WebInspector.OverviewGrid.prototype.setWindowPosition):
2870         (WebInspector.OverviewGrid.prototype.reset):
2871         (WebInspector.OverviewGrid.prototype.get windowLeft):
2872         (WebInspector.OverviewGrid.prototype.get windowRight):
2873         (WebInspector.OverviewGrid.prototype.setWindow):
2874         (WebInspector.OverviewGrid.prototype.addEventListener):
2875         (WebInspector.TimelineOverviewPane.prototype.setMode):
2876         (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
2877         (WebInspector.TimelineOverviewPane.prototype._update):
2878         (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
2879         (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
2880         (WebInspector.TimelineOverviewPane.prototype._reset):
2881         (WebInspector.TimelineOverviewPane.prototype.windowLeft):
2882         (WebInspector.TimelineOverviewPane.prototype.windowRight):
2883         (WebInspector.TimelineOverviewPane.prototype._updateWindow):
2884
2885 2013-03-18  Adam Barth  <abarth@webkit.org>
2886
2887         [V8] Crash when accessing onclick attribute of document from XMLHttpRequest
2888         https://bugs.webkit.org/show_bug.cgi?id=112585
2889
2890         Reviewed by Eric Seidel.
2891
2892         This ASSERT was bogus. The frame can be 0 for frameless documents, like
2893         those created by XMLHttpRequest. When there is no frame, we act as if
2894         JavaScript was disabled, which it is.
2895
2896         Test: fast/events/xhr-onclick-crash.html
2897
2898         * bindings/v8/V8LazyEventListener.cpp:
2899         (WebCore::V8LazyEventListener::prepareListenerObject):
2900
2901 2013-03-18  Hans Muller  <hmuller@adobe.com>
2902
2903         [CSS Exclusions] Specifying polygonal -webkit-shape-inside value can crash browser (debug mode)
2904         https://bugs.webkit.org/show_bug.cgi?id=112157
2905
2906         Reviewed by David Hyatt.
2907
2908         Corrected the code which maps exclusion segments to pairs of InlineIterators. We now handle the
2909         cases where the end of the line occurs within an exclusion segment or when it occurs before
2910         the last exclusion segment has been reached. This can occur when a non-convex polygonal shape-inside
2911         breaks a line up into two segments, but the shape-inside element's content only fills (or partially
2912         fills) the first exclusion shape segment.
2913
2914         Tests: fast/exclusions/shape-inside/shape-inside-partial-fill-001.html
2915                fast/exclusions/shape-inside/shape-inside-partial-fill-002.html
2916
2917         * rendering/RenderBlockLineLayout.cpp:
2918         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
2919
2920 2013-03-18  Emil A Eklund  <eae@chromium.org>
2921
2922         Change RenderTableCell to use pixelSnappedSize when painting
2923         https://bugs.webkit.org/show_bug.cgi?id=112562
2924
2925         Reviewed by Eric Seidel.
2926
2927         Change the paining code in RenderTableCell to use the pixel snapped size
2928         to ensure consistent rounding given that the location was rounded during
2929         layout.
2930
2931         It is currently constructing a paint rect by taking the rounded location
2932         and the precise size and then pixel snapping it. This causes the size to
2933         be rounded incorrectly. By instead using the pixel snapped size the
2934         rounding problem can be avoided.
2935
2936         Test: fast/sub-pixel/table-cell-background.html
2937
2938         * rendering/RenderTableCell.cpp:
2939         (WebCore::RenderTableCell::paintCollapsedBorders):
2940         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
2941         (WebCore::RenderTableCell::paintBoxDecorations):
2942         (WebCore::RenderTableCell::paintMask):
2943
2944 2013-03-18  Tao Bai  <michaelbai@chromium.org>
2945
2946         Need to use const String in HTMLVideoElement::posterImageURL
2947         https://bugs.webkit.org/show_bug.cgi?id=112317
2948
2949         Reviewed by Andreas Kling.
2950
2951         No behavioral changes.
2952
2953         This is the followup of https://bugs.webkit.org/show_bug.cgi?id=110263
2954         Need to use String instead of const AtomicString& which means we will do an extra hash lookup
2955
2956         * html/HTMLVideoElement.cpp:
2957         (WebCore::HTMLVideoElement::posterImageURL): Change to use String for url
2958
2959 2013-03-18  Eugene Klyuchnikov  <eustas@chromium.org>
2960
2961         Web Inspector: [Settings] Register "?" shortcut.
2962         https://bugs.webkit.org/show_bug.cgi?id=112545
2963
2964         Reviewed by Vsevolod Vlasov.
2965
2966         F1 and "?" (show shortcuts page) are not mentioned on shortcuts page.
2967
2968         * English.lproj/localizedStrings.js: Added string.
2969         * inspector/front-end/inspector.js: Registered F1 / "?" shortcut.
2970
2971 2013-03-18  Carlos Garcia Campos  <cgarcia@igalia.com>
2972
2973         Add USE(PLATFORM_STRATEGIES) ifdefs to StorageNamespace.cpp
2974         https://bugs.webkit.org/show_bug.cgi?id=112004
2975
2976         Reviewed by Rob Buis.
2977
2978         Check if platform strategies is enabled before using it, falling
2979         back to StorageNamespaceImpl if it isn't.
2980
2981         * storage/StorageNamespace.cpp:
2982         (WebCore::StorageNamespace::localStorageNamespace):
2983         (WebCore::StorageNamespace::sessionStorageNamespace):
2984
2985 2013-03-18  Vsevolod Vlasov  <vsevik@chromium.org>
2986
2987         Web Inspector: TabbedEditorContainer does not restore last shown file on reload sometimes.
2988         https://bugs.webkit.org/show_bug.cgi?id=112561
2989
2990         Reviewed by Alexander Pavlov.
2991
2992         * inspector/front-end/TabbedEditorContainer.js:
2993         (WebInspector.TabbedEditorContainer.prototype.addUISourceCode):
2994
2995 2013-03-18  Arvid Nilsson  <anilsson@rim.com>
2996
2997         [BlackBerry] Detach overlays from page when compositor is detached
2998         https://bugs.webkit.org/show_bug.cgi?id=112424
2999
3000         Reviewed by Rob Buis.
3001
3002         PR 309160
3003
3004         Expose a method to retrieve a compositing thread layer's client.
3005
3006         No change in behavior, no new tests.
3007
3008         * platform/graphics/blackberry/LayerCompositingThread.h:
3009         (WebCore::LayerCompositingThread::client):
3010
3011 2013-03-18  Eugene Klyuchnikov  <eustas@chromium.org>
3012
3013         Web Inspector: [Resources] Local Storage: duplicate keys are processed inappropriately.
3014         https://bugs.webkit.org/show_bug.cgi?id=112402
3015
3016         Reviewed by Alexander Pavlov.
3017
3018         When user creates new items or renames existing one some existing item
3019         may be overriden. If value is changed, then frontend will receive
3020         notification and update record appropriately.
3021
3022         If item value hasn't been changed, then no notification comes.
3023         But UI still expect / rely on this notification.
3024
3025         With this patch the "no notification" scenario is fixed:
3026         duplicate items are removed.
3027
3028         Another scenario is when update notification comes when we started
3029         editing value (after entering / renaming key). In this case
3030         selected node should not be changed to leave user in editing mode.
3031
3032         * inspector/front-end/DOMStorageItemsView.js:
3033         Added workarounds for "no notification" and "useless notification".
3034
3035 2013-03-18  Allan Sandfeld Jensen  <allan.jensen@digia.com>
3036
3037         Clean up RenderFrameSet::nodeAtPoint
3038         https://bugs.webkit.org/show_bug.cgi?id=112450
3039
3040         Reviewed by Eric Seidel.
3041
3042         Remove handling of resizing framesets from RenderFrameSet::nodeAtPoint.
3043         The code has been incorrect since a mistake in r18333 (December 2006),
3044         but has been dead code since r17770 (November 2006) where the then new
3045         EventHandler started taking care of routing events to resizing FrameSets.
3046
3047         Since this was the only special feature of RenderFrameSet::nodeAtPoint,
3048         the method has been removed.
3049
3050         * rendering/RenderFrameSet.cpp:
3051         * rendering/RenderFrameSet.h:
3052         (RenderFrameSet):
3053
3054 2013-03-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
3055
3056         The 'formnovalidate' attribute doesn't work correctly on button elements with child elements
3057         https://bugs.webkit.org/show_bug.cgi?id=112541
3058
3059         Reviewed by Kent Tamura.
3060
3061         Fix a bug where formnovalidate attribute of <button> is not honored
3062         if the target of the click event is an element nested within the button.
3063
3064         Test: fast/forms/interactive-validation-formnovalidate-child.html
3065
3066         * html/HTMLFormElement.cpp:
3067         (WebCore::submitElementFromEvent): Looks for the nearest FormControlElement ancestor of the event target.
3068
3069 2013-03-18  Keishi Hattori  <keishi@webkit.org>
3070
3071         Add touch support to the calendar picker
3072         https://bugs.webkit.org/show_bug.cgi?id=112256
3073
3074         Reviewed by Kent Tamura.
3075
3076         This patch increases the hit target sizes for touch and adds touch event
3077         support to the scroll view, scroll bar and navigation button.
3078
3079         Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-touch-operations.html
3080                platform/chromium/fast/forms/calendar-picker/month-picker-touch-operations.html
3081                platform/chromium/fast/forms/calendar-picker/week-picker-touch-operations.html
3082
3083         * Resources/pagepopups/calendarPicker.js:
3084         (hasInaccuratePointingDevice):
3085         (Animator): Super class for TransitionAnimator and FlingGestureAnimator.
3086         (Animator.prototype.start):
3087         (Animator.prototype.stop):
3088         (Animator.prototype.onAnimationFrame):
3089         (TransitionAnimator): Same as the old Animator. Transition from one value to another.
3090         (TransitionAnimator.prototype.setFrom):
3091         (TransitionAnimator.prototype.start):
3092         (TransitionAnimator.prototype.stop):
3093         (TransitionAnimator.prototype.setTo):
3094         (TransitionAnimator.prototype.onAnimationFrame):
3095         (FlingGestureAnimator):Animates the fling scroll. 
3096         (FlingGestureAnimator.prototype._valueAtTime): Returns the value at the given time.
3097         (FlingGestureAnimator.prototype._velocityAtTime): Returns the value change velocity at the given time.
3098         (FlingGestureAnimator.prototype._timeAtVelocity): Returns the time when the value is changing at the given velocity.
3099         (FlingGestureAnimator.prototype.start):
3100         (FlingGestureAnimator.prototype.onAnimationFrame):
3101         (ScrollView): Added support for touch gesture scrolling.
3102         (ScrollView.prototype.onTouchStart):
3103         (ScrollView.prototype.onWindowTouchMove):
3104         (ScrollView.prototype.onWindowTouchEnd):
3105         (ScrollView.prototype.onFlingGestureAnimatorStep):
3106         (ScrollView.prototype.scrollTo):
3107         (ScrubbyScrollBar): Added support for touch.
3108         (ScrubbyScrollBar.prototype.onTouchStart):
3109         (ScrubbyScrollBar.prototype.onWindowTouchMove):
3110         (ScrubbyScrollBar.prototype.onWindowTouchEnd):
3111         (ScrubbyScrollBar.prototype._setThumbPositionFromEventPosition): Accept MouseEvent or Touch.
3112         (ScrubbyScrollBar.prototype.onMouseDown):
3113         (ScrubbyScrollBar.prototype.onWindowMouseMove):
3114         (ScrubbyScrollBar.prototype.onWindowMouseUp):
3115         (YearListCell):
3116         (YearListView):
3117         (YearListView.prototype.onTouchStart):
3118         (YearListView.prototype._animateRow):
3119         (CalendarNavigationButton): Add touch support for long press.
3120         (CalendarNavigationButton.prototype.onTouchStart):
3121         (CalendarNavigationButton.prototype.onWindowTouchEnd):
3122         (CalendarNavigationButton.prototype.onMouseDown):
3123         (CalendarNavigationButton.prototype.onWindowMouseUp):
3124         (CalendarTableView): Disable touch gesture scrolling in the calendar table.
3125
3126 2013-03-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3127
3128         [EFL] Cancel mark on search field is not displayed
3129         https://bugs.webkit.org/show_bug.cgi?id=94880
3130
3131         Reviewed by Kenneth Rohde Christiansen.
3132
3133         adjustSearchFieldCancelButtonStyle() doesn't set style width and height for search cancel button.
3134         So, the button isn't showing up in search input field. Besides the button size should be scaled based
3135         on the font size as chromium, qt, and blackberry ports.
3136
3137         Tests: fast/forms/search-cancel-button-style-sharing.html
3138                fast/forms/search-rtl.html
3139
3140         * platform/efl/RenderThemeEfl.cpp:
3141         (WebCore):
3142         (WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
3143
3144 2013-03-15  Yury Semikhatsky  <yurys@chromium.org>
3145
3146         Web Inspector: Native Memory Timeline affects the performace even if was switched off.
3147         https://bugs.webkit.org/show_bug.cgi?id=112428
3148
3149         Reviewed by Pavel Feldman.
3150
3151         Whether to include DOM counters and native memory statistics is now
3152         configured using Timeline.start parameters instead of sending separate
3153         commands Timeline.setIncludeDomCounters and Timeline.setIncludeNativeMemoryStatistics.
3154
3155         * inspector/Inspector.json:
3156         * inspector/InspectorTimelineAgent.cpp:
3157         (WebCore::InspectorTimelineAgent::restore):
3158         (WebCore::InspectorTimelineAgent::start):
3159         * inspector/InspectorTimelineAgent.h:
3160         (InspectorTimelineAgent):
3161         * inspector/front-end/DOMCountersGraph.js:
3162         (WebInspector.DOMCountersGraph):
3163         * inspector/front-end/NativeMemoryGraph.js:
3164         (WebInspector.NativeMemoryGraph):
3165         * inspector/front-end/TimelineManager.js:
3166         (WebInspector.TimelineManager.prototype.start):
3167         * inspector/front-end/TimelineModel.js:
3168         (WebInspector.TimelineModel.prototype.startRecord):
3169         * inspector/front-end/TimelinePanel.js:
3170         (WebInspector.TimelinePanel.prototype.get _toggleTimelineButtonClicked):
3171
3172 2013-03-18  Yury Semikhatsky  <yurys@chromium.org>
3173
3174         Web Inspector: Exception in timeline DOMCounters
3175         https://bugs.webkit.org/show_bug.cgi?id=112427
3176
3177         Reviewed by Pavel Feldman.
3178
3179         Do not update marker on DOM counters graph if the graphs haven't been
3180         drawn yet.
3181
3182         * inspector/front-end/MemoryStatistics.js:
3183         (WebInspector.MemoryStatistics.prototype._refreshCurrentValues):
3184
3185 2013-03-18  Li Yin  <li.yin@intel.com>
3186
3187         Mediastream.ended should return true when all tracks were removed.
3188         https://bugs.webkit.org/show_bug.cgi?id=112528
3189
3190         Reviewed by Kentaro Hara.
3191
3192         Spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStream-ended
3193         When all tracks have been removed, it should return true as well as all the tracks
3194         were ended.
3195
3196         Test: fast/mediastream/MediaStream-add-remove-tracks.html
3197
3198         * Modules/mediastream/MediaStream.cpp:
3199         (WebCore::MediaStream::removeTrack):
3200
3201 2013-02-22  Andrey Kosyakov  <caseq@chromium.org>
3202
3203         Web Inspector: make number of stack frames to capture in Timeline a setting
3204         https://bugs.webkit.org/show_bug.cgi?id=110619
3205
3206         Reviewed by Pavel Feldman.
3207
3208         - factor out creation of input type="text" control for better reuse;
3209         - add timelineLimitStackFramesFlag & timelineStackFramesToCapture settings;
3210
3211         * English.lproj/localizedStrings.js: add "Frames to capture" and "Limit number of captured JS stack frames"
3212         * inspector/front-end/Settings.js: add 2 settings;
3213         (WebInspector.Settings):
3214         * inspector/front-end/SettingsScreen.js: UI for the setting;
3215         (WebInspector.GenericSettingsTab):
3216         (WebInspector.GenericSettingsTab.prototype.get _createCSSAutoReloadControls.validateReloadTimeout):
3217         * inspector/front-end/TimelineModel.js: pass the setting value to back-end.
3218
3219 2013-03-18  Sheriff Bot  <webkit.review.bot@gmail.com>
3220
3221         Unreviewed, rolling out r146035.
3222         http://trac.webkit.org/changeset/146035
3223         https://bugs.webkit.org/show_bug.cgi?id=112540
3224
3225         fails to build on Windows: singned/unsigned mismatch at ln. 53
3226         of html\HTMLSelectElementWin.cpp (Requested by antonm on
3227         #webkit).
3228
3229         * WebCore.gypi:
3230         * html/HTMLSelectElement.cpp:
3231         (WebCore):
3232         * html/HTMLSelectElementWin.cpp:
3233
3234 2013-03-18  Kentaro Hara  <haraken@chromium.org>
3235
3236         Unreviewed, rolling out r146033.
3237         http://trac.webkit.org/changeset/146033
3238         https://bugs.webkit.org/show_bug.cgi?id=112521
3239
3240         web audio tests are broken
3241
3242         * Modules/webaudio/AudioNode.cpp:
3243         (WebCore::AudioNode::AudioNode):
3244         * Modules/webaudio/AudioNode.h:
3245         * Modules/webaudio/AudioScheduledSourceNode.h:
3246         * Modules/webaudio/ScriptProcessorNode.idl:
3247
3248 2013-03-18  Dominic Cooney  <dominicc@chromium.org>
3249
3250         A placeholder renderer should not be taken to imply the existence of a text renderer in single line text controls
3251         https://bugs.webkit.org/show_bug.cgi?id=112410
3252
3253         Reviewed by Tony Chang.
3254
3255         The assumption that if a text control had a placeholder renderer
3256         then it also had a text renderer is not valid. If
3257         ::-webkit-textfield-decoration-controller is set to display: none;
3258         a single line text control's decoration container renderer and
3259         hence text renderer are not created. This change handles this
3260         corner case where a text control has a placeholder renderer but
3261         not a text renderer.
3262
3263         Tests: fast/forms/search/search-hide-decoration-container-crash.html (Updated)
3264
3265         * html/HTMLTextFormControlElement.cpp:
3266         (WebCore::HTMLTextFormControlElement::fixPlaceholderRenderer):
3267         * rendering/RenderTextControlSingleLine.cpp:
3268         (WebCore::RenderTextControlSingleLine::layout):
3269
3270 2013-03-18  Dominic Cooney  <dominicc@chromium.org>
3271
3272         [Shadow] offsetParent should never return nodes in user agent Shadow DOM to script
3273         https://bugs.webkit.org/show_bug.cgi?id=112530
3274
3275         Reviewed by Elliott Sprehn.
3276
3277         Test: fast/dom/shadow/offset-parent-does-not-leak-ua-shadow.html
3278
3279         * dom/Element.cpp:
3280         (WebCore::Element::bindingsOffsetParent): Filter nodes in UA shadows.
3281         * dom/Element.h:
3282         (Element): Add bindingsOffsetParent.
3283         * dom/Element.idl: bindingsOffsetParent is the implementation of offsetParent.
3284
3285 2013-03-17  Dominic Mazzoni  <dmazzoni@google.com>
3286
3287         Support Windows HTMLSelectElement keystrokes on Chromium win
3288         https://bugs.webkit.org/show_bug.cgi?id=112460
3289
3290         Reviewed by Kent Tamura.
3291
3292         Compile in the windows-specific variant of
3293         HTMLSelectElement::platformHandleKeydownEvent
3294         on Chromium win, in addition to PLATFORM(WIN).
3295
3296         * WebCore.gypi:
3297             Add html/HTMLSelectElementWin.cpp.
3298         * html/HTMLSelectElement.cpp:
3299             Don't compile generic platformHandleKeydownEvent on
3300             Chromium win.
3301         * html/HTMLSelectElementWin.cpp:
3302             Only compile platformHandleKeydownEvent on Windows.
3303         (WebCore):
3304
3305 2013-03-17  Russell McClellan  <russell.mcclellan@gmail.com>
3306
3307         ScriptProcessorNode is garbage collected while still active if unreachable
3308         https://bugs.webkit.org/show_bug.cgi?id=112521
3309
3310         Reviewed by Kentaro Hara.
3311
3312         Fix for issue where ScriptProcessorNodes (and AudioNode js wrappers generally)
3313         would be garbage collected before their time.  Made AudioNode an ActiveDOMElement
3314         marked pending if there are any open audio connections.
3315
3316         Test: webaudio/javascriptaudionode.html
3317
3318         * Modules/webaudio/AudioNode.cpp:
3319         (WebCore::AudioNode::AudioNode): 
3320         (WebCore::AudioNode::hasPendingActivity): it's pending (and thus not GCed)
3321         if it has open audio connections.
3322         * Modules/webaudio/AudioNode.h: AudioNode is now an ActiveDOMElement
3323         * Modules/webaudio/AudioScheduledSourceNode.h: added a using declaration
3324         to avoid function name hiding.
3325         * Modules/webaudio/ScriptProcessorNode.idl: AudioNode is an ActiveDOMElement
3326
3327 2013-03-17  Kunihiko Sakamoto  <ksakamoto@chromium.org>
3328
3329         INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of minute/second/millisecond fields should respect min/max attributes
3330         https://bugs.webkit.org/show_bug.cgi?id=112527
3331
3332         Reviewed by Kent Tamura.
3333
3334         Make step-up/-down of the minute, second, and millisecond field
3335         respect the min/max attributes of the element.
3336         Note that it still accepts any keyboard inputs (the element
3337         becomes 'invalid' state when out-of-range values entered).
3338         Also, disable these fields when there is only single possible value.
3339
3340         Tests: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
3341                fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
3342
3343         * html/shadow/DateTimeEditElement.cpp:
3344         (DateTimeEditBuilder): Add fields for min/max of minute/second/millisecond.
3345         (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Set min/max for the fields.
3346         (WebCore::DateTimeEditBuilder::visitField): Pass min/max parameters to the field constructors.
3347         (WebCore::DateTimeEditBuilder::shouldHourFieldDisabled): Does not disable if minute, second, millisecond fields are all disabled, because we need at least one editable field.
3348         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldDisabled): Disables if min, max, and value are equal.
3349         (WebCore::DateTimeEditBuilder::shouldMinuteFieldDisabled): Ditto.
3350         (WebCore::DateTimeEditBuilder::shouldSecondFieldDisabled): Ditto.
3351         * html/shadow/DateTimeFieldElements.cpp:
3352         (WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement):
3353         (WebCore::DateTimeHourFieldElementBase::DateTimeHourFieldElementBase):
3354         (WebCore::DateTimeHour11FieldElement::DateTimeHour11FieldElement):
3355         (WebCore::DateTimeHour12FieldElement::DateTimeHour12FieldElement):
3356         (WebCore::DateTimeHour23FieldElement::DateTimeHour23FieldElement):
3357         (WebCore::DateTimeHour24FieldElement::DateTimeHour24FieldElement):
3358         (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement):
3359         (WebCore::DateTimeMillisecondFieldElement::create):
3360         (WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement):
3361         (WebCore::DateTimeMinuteFieldElement::create):
3362         (WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement):
3363         (WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement):
3364         (WebCore::DateTimeSecondFieldElement::create):
3365         (WebCore::DateTimeWeekFieldElement::DateTimeWeekFieldElement):
3366         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
3367         * html/shadow/DateTimeFieldElements.h:
3368         (DateTimeDayFieldElement):
3369         (DateTimeHourFieldElementBase):
3370         (DateTimeHour11FieldElement):
3371         (DateTimeHour12FieldElement):
3372         (DateTimeHour23FieldElement):
3373         (DateTimeHour24FieldElement):
3374         (DateTimeMillisecondFieldElement): Add minimum/maximum parameters.
3375         (DateTimeMinuteFieldElement): Add minimum/maximum parameters.
3376         (DateTimeMonthFieldElement):
3377         (DateTimeSecondFieldElement): Add minimum/maximum parameters.
3378         (DateTimeWeekFieldElement):
3379         (DateTimeYearFieldElement):
3380         * html/shadow/DateTimeNumericFieldElement.cpp:
3381         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
3382         (WebCore::DateTimeNumericFieldElement::formatValue): Use hard-limit value instead of m_range.maximum, because millisecond field with max<100 will be displayed in two digits otherwise.
3383         (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
3384         * html/shadow/DateTimeNumericFieldElement.h:
3385         (DateTimeNumericFieldElement): Changed to have hard limits as a data member.
3386
3387 2013-03-17  Alexey Proskuryakov  <ap@apple.com>
3388
3389         Encapsulate PlatformMessagePortChannel a little better yet
3390         https://bugs.webkit.org/show_bug.cgi?id=112479
3391
3392         Reviewed by Sam Weinig.
3393
3394         * dom/MessagePortChannel.h: We no longer expose PlatformMessagePortChannel in
3395         public functions in cross-platform code.
3396
3397         * dom/default/PlatformMessagePortChannel.cpp:
3398         (WebCore::MessagePortChannel::createChannel): Tweaked the factory method to avoid
3399         using the old create() function.
3400         (WebCore::MessagePortChannel::~MessagePortChannel): Removed an unhelpful comment.
3401
3402 2013-03-17  Kent Tamura  <tkent@chromium.org>
3403
3404         INPUT_MULTIPLE_FIELDS_UI: Don't update shadow tree by updating any attribute
3405         https://bugs.webkit.org/show_bug.cgi?id=111990
3406
3407         Reviewed by Hajime Morrita.
3408
3409         Bug detail:
3410         Typing '1' then '1' into an hour field doesn't set the field to
3411         '11' if an attribute is updated during these two keyboard inputs
3412         because we always re-construct a shadow DOM tree by updating any
3413         attributes and a shadow node records keyboard input state.
3414
3415         How to fix:
3416         We should not re-construct a shadow DOM tree by updating
3417         unaffected attributes. For example, we should re-construct it by
3418         updating 'min' attribute, but we should not by updating 'class'
3419         attribute.
3420         We have InputType::updateInnerTextValue call in parseAttribute for
3421         text field input types. The multiple fields input types
3422         re-construct shadow DOM tree in updateInnerTextValue. The
3423         updateInnerTextValue call is unnecessary for the multiple fields
3424         input types, and we should call it when it is necessary. So, we
3425         add InputType::attributeChange and text field input types call
3426         updateInnerTextValue in it, and other input types don't.
3427         Also, multiple fields input types need to call
3428         updateInnerTextValue by 'value' attribute change. We add
3429         InputType::valueAttributeChanged.
3430
3431         Tests: Update
3432         fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html. The
3433         value attribute change behavior is covered by
3434         time-multiple-fields-change-layout-by-value.html and
3435         time-multiple-fields-spinbutton-change-and-input-events.html.
3436
3437         * html/HTMLInputElement.cpp:
3438         (WebCore::HTMLInputElement::parseAttribute):
3439         - Add a valueAttributeChanged call.
3440         - Calls InputType::attributeChanged
3441         * html/InputType.cpp:
3442         (WebCore::InputType::attributeChanged): Added an empty implementation.
3443         (WebCore::InputType::valueAttributeChanged): Ditto.
3444         * html/InputType.h:
3445         (InputType): Declare attributeChanged and valueAttributeChanged.
3446         * html/TextFieldInputType.cpp:
3447         (WebCore::TextFieldInputType::attributeChanged):
3448         Added. Always call updateInnerTextValue.
3449         * html/TextFieldInputType.h:
3450         (TextFieldInputType): Declare attributeChanged.
3451         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
3452         (WebCore::BaseMultipleFieldsDateAndTimeInputType::valueAttributeChanged):
3453         Added. Re-construct shadow DOM tree if the input has no dirty value.