f7849bb23309ce6fc9f7735142e522684a2152cf
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-02-11  Alexander Pavlov  <apavlov@chromium.org>
2
3         Web Inspector: Implement position-based sourcemapping for stylesheets
4         https://bugs.webkit.org/show_bug.cgi?id=109168
5
6         Reviewed by Vsevolod Vlasov.
7
8         This change introduces support for position-based source maps for CSS stylesheets.
9         Sourcemaps and originating resources (sass, scss, etc.) are loaded synchronously
10         upon the CSS UISourceCode addition. RangeBasedSourceMap is removed as it is not used.
11
12         Test: http/tests/inspector/stylesheet-source-mapping.html
13
14         * inspector/front-end/CSSStyleModel.js:
15         (WebInspector.CSSStyleModel):
16         (WebInspector.CSSStyleModel.prototype.setSourceMapping):
17         (WebInspector.CSSStyleModel.prototype.rawLocationToUILocation):
18         (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
19         (WebInspector.CSSLocation):
20         (WebInspector.CSSProperty):
21         (WebInspector.CSSProperty.parsePayload):
22         * inspector/front-end/CompilerScriptMapping.js:
23         (WebInspector.CompilerScriptMapping):
24         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
25         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
26         * inspector/front-end/SASSSourceMapping.js:
27         (WebInspector.SASSSourceMapping):
28         (WebInspector.SASSSourceMapping.prototype._styleSheetChanged.callback):
29         (WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
30         (WebInspector.SASSSourceMapping.prototype._reloadCSS):
31         (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
32         (WebInspector.SASSSourceMapping.prototype._resourceAdded):
33         (WebInspector.SASSSourceMapping.prototype._loadAndProcessSourceMap):
34         (WebInspector.SASSSourceMapping.prototype.loadSourceMapForStyleSheet):
35         (WebInspector.SASSSourceMapping.prototype._bindUISourceCode):
36         (WebInspector.SASSSourceMapping.prototype.rawLocationToUILocation):
37         (WebInspector.SASSSourceMapping.prototype.uiLocationToRawLocation):
38         (WebInspector.SASSSourceMapping.prototype._reset):
39         * inspector/front-end/SourceMap.js:
40         (WebInspector.SourceMap):
41         (WebInspector.SourceMap.load):
42         (WebInspector.SourceMap.prototype.findEntry):
43         (WebInspector.SourceMap.prototype.findEntryReversed):
44         (WebInspector.SourceMap.prototype._parseMap):
45         * inspector/front-end/StylesSourceMapping.js:
46         (WebInspector.StylesSourceMapping):
47         (WebInspector.StylesSourceMapping.prototype._bindUISourceCode):
48         * inspector/front-end/inspector.js:
49
50 2013-02-11  Alexander Shalamov  <alexander.shalamov@intel.com>
51
52         Implement CSSValue::equals(const CSSValue&) to optimise CSSValue comparison
53         https://bugs.webkit.org/show_bug.cgi?id=102901
54
55         Reviewed by Antti Koivisto.
56
57         Added comparison method to CSSValue and its children, so that the
58         css values could be compared efficiently. Before this patch, CSSValue
59         objects were compared using strings that were generated by the cssText() method.
60
61         Test: cssom/cssvalue-comparison.html
62
63         * css/CSSAspectRatioValue.cpp:
64         (WebCore::CSSAspectRatioValue::equals):
65         (WebCore):
66         * css/CSSAspectRatioValue.h:
67         (CSSAspectRatioValue):
68         * css/CSSBasicShapes.cpp:
69         (WebCore::CSSBasicShapeRectangle::equals):
70         (WebCore):
71         (WebCore::CSSBasicShapeCircle::equals):
72         (WebCore::CSSBasicShapeEllipse::equals):
73         (WebCore::CSSBasicShapePolygon::equals):
74         * css/CSSBasicShapes.h:
75         (CSSBasicShapeRectangle):
76         (CSSBasicShapeCircle):
77         (CSSBasicShapeEllipse):
78         (CSSBasicShapePolygon):
79         * css/CSSBorderImageSliceValue.cpp:
80         (WebCore::CSSBorderImageSliceValue::equals):
81         (WebCore):
82         * css/CSSBorderImageSliceValue.h:
83         (CSSBorderImageSliceValue):
84         * css/CSSCalculationValue.cpp:
85         (WebCore::CSSCalcValue::equals):
86         (WebCore):
87         (WebCore::CSSCalcPrimitiveValue::equals):
88         (CSSCalcPrimitiveValue):
89         (WebCore::CSSCalcPrimitiveValue::type):
90         (WebCore::CSSCalcBinaryOperation::equals):
91         (CSSCalcBinaryOperation):
92         (WebCore::CSSCalcBinaryOperation::type):
93         * css/CSSCalculationValue.h:
94         (WebCore::CSSCalcExpressionNode::equals):
95         (CSSCalcExpressionNode):
96         (CSSCalcValue):
97         * css/CSSCanvasValue.cpp:
98         (WebCore::CSSCanvasValue::equals):
99         (WebCore):
100         * css/CSSCanvasValue.h:
101         (CSSCanvasValue):
102         * css/CSSComputedStyleDeclaration.cpp:
103         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
104         (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
105         (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForSidesShorthand):
106         * css/CSSCrossfadeValue.cpp:
107         (WebCore::CSSCrossfadeValue::equals):
108         (WebCore):
109         * css/CSSCrossfadeValue.h:
110         (CSSCrossfadeValue):
111         * css/CSSCursorImageValue.cpp:
112         (WebCore::CSSCursorImageValue::equals):
113         (WebCore):
114         * css/CSSCursorImageValue.h:
115         (CSSCursorImageValue):
116         * css/CSSFontFaceSrcValue.cpp:
117         (WebCore::CSSFontFaceSrcValue::equals):
118         (WebCore):
119         * css/CSSFontFaceSrcValue.h:
120         (CSSFontFaceSrcValue):
121         * css/CSSFunctionValue.cpp:
122         (WebCore::CSSFunctionValue::equals):
123         (WebCore):
124         * css/CSSFunctionValue.h:
125         (CSSFunctionValue):
126         * css/CSSGradientValue.cpp:
127         (WebCore::CSSLinearGradientValue::equals):
128         (WebCore):
129         (WebCore::CSSRadialGradientValue::equals):
130         * css/CSSGradientValue.h:
131         (WebCore::CSSGradientColorStop::operator==):
132         (CSSLinearGradientValue):
133         (CSSRadialGradientValue):
134         * css/CSSImageValue.cpp:
135         (WebCore::CSSImageValue::equals):
136         (WebCore):
137         * css/CSSImageValue.h:
138         (CSSImageValue):
139         * css/CSSInheritedValue.h:
140         (WebCore::CSSInheritedValue::equals):
141         (CSSInheritedValue):
142         * css/CSSInitialValue.h:
143         (WebCore::CSSInitialValue::equals):
144         (CSSInitialValue):
145         * css/CSSLineBoxContainValue.h:
146         (WebCore::CSSLineBoxContainValue::equals):
147         * css/CSSPrimitiveValue.cpp:
148         (WebCore::CSSPrimitiveValue::equals):
149         (WebCore):
150         * css/CSSPrimitiveValue.h:
151         (CSSPrimitiveValue):
152         * css/CSSReflectValue.cpp:
153         (WebCore::CSSReflectValue::equals):
154         (WebCore):
155         * css/CSSReflectValue.h:
156         (CSSReflectValue):
157         * css/CSSTimingFunctionValue.cpp:
158         (WebCore::CSSCubicBezierTimingFunctionValue::equals):
159         (WebCore):
160         (WebCore::CSSStepsTimingFunctionValue::equals):
161         * css/CSSTimingFunctionValue.h:
162         (WebCore::CSSLinearTimingFunctionValue::equals):
163         (CSSLinearTimingFunctionValue):
164         (CSSCubicBezierTimingFunctionValue):
165         (CSSStepsTimingFunctionValue):
166         * css/CSSUnicodeRangeValue.cpp:
167         (WebCore::CSSUnicodeRangeValue::equals):
168         (WebCore):
169         * css/CSSUnicodeRangeValue.h:
170         (CSSUnicodeRangeValue):
171         * css/CSSValue.cpp:
172         (WebCore):
173         (WebCore::compareCSSValues):
174         (WebCore::CSSValue::equals):
175         * css/CSSValue.h:
176         (CSSValue):
177         (WebCore):
178         (WebCore::compareCSSValueVector):
179         (WebCore::compareCSSValuePtr):
180         * css/CSSValueList.cpp:
181         (WebCore::CSSValueList::removeAll):
182         (WebCore::CSSValueList::hasValue):
183         (WebCore::CSSValueList::equals):
184         (WebCore):
185         * css/CSSValueList.h:
186         (CSSValueList):
187         * css/CSSVariableValue.h:
188         (WebCore::CSSVariableValue::equals):
189         (CSSVariableValue):
190         * css/Counter.h:
191         (Counter):
192         (WebCore::Counter::equals):
193         * css/DashboardRegion.h:
194         (WebCore::DashboardRegion::equals):
195         * css/FontFeatureValue.cpp:
196         (WebCore::FontFeatureValue::equals):
197         (WebCore):
198         * css/FontFeatureValue.h:
199         (FontFeatureValue):
200         * css/FontValue.cpp:
201         (WebCore::FontValue::equals):
202         (WebCore):
203         * css/FontValue.h:
204         (FontValue):
205         * css/MediaQueryExp.h:
206         (WebCore::MediaQueryExp::operator==):
207         * css/Pair.h:
208         (WebCore::Pair::equals):
209         (Pair):
210         * css/Rect.h:
211         (WebCore::RectBase::equals):
212         (RectBase):
213         * css/ShadowValue.cpp:
214         (WebCore::ShadowValue::equals):
215         (WebCore):
216         * css/ShadowValue.h:
217         (ShadowValue):
218         * css/StylePropertySet.cpp:
219         (WebCore::StylePropertySet::get4Values):
220         (WebCore::StylePropertySet::propertyMatches):
221         * css/WebKitCSSArrayFunctionValue.cpp:
222         (WebCore::WebKitCSSArrayFunctionValue::equals):
223         (WebCore):
224         * css/WebKitCSSArrayFunctionValue.h:
225         (WebKitCSSArrayFunctionValue):
226         * css/WebKitCSSFilterValue.cpp:
227         (WebCore::WebKitCSSFilterValue::equals):
228         (WebCore):
229         * css/WebKitCSSFilterValue.h:
230         (WebKitCSSFilterValue):
231         * css/WebKitCSSMixFunctionValue.cpp:
232         (WebCore::WebKitCSSMixFunctionValue::equals):
233         (WebCore):
234         * css/WebKitCSSMixFunctionValue.h:
235         (WebKitCSSMixFunctionValue):
236         * css/WebKitCSSSVGDocumentValue.cpp:
237         (WebCore::WebKitCSSSVGDocumentValue::equals):
238         (WebCore):
239         * css/WebKitCSSSVGDocumentValue.h:
240         (WebKitCSSSVGDocumentValue):
241         * css/WebKitCSSShaderValue.cpp:
242         (WebCore::WebKitCSSShaderValue::equals):
243         (WebCore):
244         * css/WebKitCSSShaderValue.h:
245         (WebKitCSSShaderValue):
246         * css/WebKitCSSTransformValue.h:
247         (WebCore::WebKitCSSTransformValue::equals):
248         * editing/EditingStyle.cpp:
249         (WebCore::HTMLAttributeEquivalent::valueIsPresentInStyle):
250         * svg/SVGColor.cpp:
251         (WebCore::SVGColor::equals):
252         (WebCore):
253         * svg/SVGColor.h:
254         (SVGColor):
255         * svg/SVGPaint.cpp:
256         (WebCore::SVGPaint::equals):
257         (WebCore):
258         * svg/SVGPaint.h:
259         (SVGPaint):
260
261 2013-02-11  Pan Deng  <pan.deng@intel.com>
262
263         [Web Inspector] Network panel, sort by "transferSize" instead of "resourceSize".
264         https://bugs.webkit.org/show_bug.cgi?id=109142.
265
266         Reviewed by Vsevolod Vlasov.
267
268         Sort by "transferSize" as it is the primary rather than "resoureSize".
269
270         No new tests.
271
272         * inspector/front-end/NetworkPanel.js:
273         (WebInspector.NetworkDataGridNode.SizeComparator):
274
275 2013-02-11  Eugene Klyuchnikov  <eustas@chromium.org>
276
277         Web Inspector: [Resources] Prefactorings in DataGrid and CookieTable
278         https://bugs.webkit.org/show_bug.cgi?id=109141
279
280         Reviewed by Vsevolod Vlasov.
281
282         1) Make deleteCookie method static and move to WebInspector.Cookie
283         2) Replace resfreshCallback getter/setter in DataGrid with
284         constructor parameter
285
286         * inspector/front-end/CookieItemsView.js: Adopt changes.
287         * inspector/front-end/CookieParser.js:
288         (WebInspector.Cookie.prototype.remove): Moved from CookiesTable.
289         * inspector/front-end/CookiesTable.js: Adopt changes.
290         * inspector/front-end/DataGrid.js:
291         Replace setter with constructor parameter.
292
293 2013-02-11  John J. Barton  <johnjbarton@chromium.org>
294
295         Web Inspector: Don't throw exceptions in WebInspector.Color
296         https://bugs.webkit.org/show_bug.cgi?id=104835
297
298         Reviewed by Vsevolod Vlasov.
299
300         WebInspector.Color.parse() returns a Color from a string, or null;
301         Ctor calls now call parse();
302         In the StylesSideBarPane, test null rather than catch(e).
303
304         Added case to inspector/styles/styles-invalid-color-values.html
305
306         * inspector/front-end/Color.js:
307         (WebInspector.Color):
308         (WebInspector.Color.parse):
309         (WebInspector.Color.fromRGBA):
310         (WebInspector.Color.fromRGB):
311         (WebInspector.Color.prototype.toString):
312         (WebInspector.Color.prototype._parse.this.alpha.set 0):
313         (WebInspector.Color.prototype._parse.this.nickname.set 2):
314         (WebInspector.Color.prototype._parse.this.hsla.set 1):
315         (WebInspector.Color.prototype._parse.this.rgba.set 0):
316         (WebInspector.Color.prototype._parse.set WebInspector):
317         (WebInspector.Color.prototype._parse):
318         * inspector/front-end/Spectrum.js:
319         (WebInspector.Spectrum.prototype.get color):
320         * inspector/front-end/StylesSidebarPane.js:
321
322 2013-02-11  Andrey Lushnikov  <lushnikov@chromium.org>
323
324         Web Inspector: home button behaviour is wrong in DTE
325         https://bugs.webkit.org/show_bug.cgi?id=109154
326
327         Reviewed by Vsevolod Vlasov.
328
329         Handle home key shortcut explicitly in TextEditorMainPanel.
330
331         New test: inspector/editor/text-editor-home-button.html
332
333         * inspector/front-end/DefaultTextEditor.js:
334         (WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
335         (WebInspector.TextEditorMainPanel.prototype._handleHomeKey):
336
337 2013-02-11  Abhishek Arya  <inferno@chromium.org>
338
339         Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
340         https://bugs.webkit.org/show_bug.cgi?id=108981
341
342         Reviewed by Eric Seidel.
343
344         * Modules/mediastream/RTCStatsResponse.cpp:
345         (WebCore::RTCStatsResponse::addElement):
346         (WebCore::RTCStatsResponse::addStatistic):
347         * Modules/websockets/WebSocketChannel.cpp:
348         (WebCore::WebSocketChannel::skipBuffer):
349         * css/CSSCalculationValue.cpp:
350         (WebCore::CSSCalcExpressionNodeParser::parseValueMultiplicativeExpression):
351         (WebCore::CSSCalcExpressionNodeParser::parseAdditiveValueExpression):
352         * css/WebKitCSSTransformValue.cpp:
353         (WebCore::transformValueToCssString):
354         * editing/TextIterator.cpp:
355         (WebCore::SearchBuffer::search):
356         * html/HTMLElement.cpp:
357         (WebCore::parseColorStringWithCrazyLegacyRules):
358         * html/ImageData.cpp:
359         (WebCore::ImageData::ImageData):
360         * html/shadow/DateTimeSymbolicFieldElement.cpp:
361         (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
362         * html/track/TextTrackCueList.cpp:
363         (WebCore::TextTrackCueList::add):
364         * platform/SharedBuffer.cpp:
365         (WebCore::SharedBuffer::getSomeData):
366         * platform/SharedBufferChunkReader.cpp:
367         (WebCore::SharedBufferChunkReader::nextChunk):
368         * platform/audio/HRTFDatabase.cpp:
369         (WebCore::HRTFDatabase::getKernelsFromAzimuthElevation):
370         * platform/graphics/GlyphPageTreeNode.cpp:
371         (WebCore::GlyphPageTreeNode::initializePage):
372         * platform/graphics/Region.cpp:
373         (WebCore::Region::Shape::segments_end):
374         * platform/graphics/filters/FEComponentTransfer.cpp:
375         (WebCore::FEComponentTransfer::getValues):
376         * platform/graphics/filters/FilterEffect.cpp:
377         (WebCore::FilterEffect::inputEffect):
378         * platform/text/TextCodecUTF8.cpp:
379         (WebCore::TextCodecUTF8::decode):
380         * platform/text/mac/TextCodecMac.cpp:
381         (WebCore::TextCodecMac::decode):
382         * rendering/RenderBlockLineLayout.cpp:
383         (WebCore::RenderBlock::checkFloatsInCleanLine):
384         * svg/SVGAnimatedTypeAnimator.h:
385         (WebCore::SVGAnimatedTypeAnimator::executeAction):
386         * svg/SVGAnimationElement.cpp:
387         (WebCore::SVGAnimationElement::calculatePercentForSpline):
388         * svg/animation/SVGSMILElement.cpp:
389         (WebCore::SVGSMILElement::findInstanceTime):
390
391 2013-02-10  Chris Fleizach  <cfleizach@apple.com>
392
393         WebSpeech: Implement basic speaking/finished speaking behavior
394         https://bugs.webkit.org/show_bug.cgi?id=107135
395
396         Reviewed by Sam Weinig.
397
398         Implements the basic functionality of speaking utterances.
399
400         In the WebCore side, it manages the speech queue the way the spec defines
401         (that is, new jobs are appended to a queue and wait for other jobs to finish).
402
403         On the Mac side, it instantiates a synthesizer and handles the callbacks for when
404         jobs are finished. It sends those jobs back to WebCore to dispatch the right events.
405
406         Test: platform/mac/fast/speechsynthesis/speech-synthesis-speak.html
407
408         * Modules/speech/SpeechSynthesis.cpp:
409         (WebCore::SpeechSynthesis::SpeechSynthesis):
410         (WebCore::SpeechSynthesis::paused):
411         (WebCore::SpeechSynthesis::startSpeakingImmediately):
412         (WebCore::SpeechSynthesis::speak):
413         (WebCore):
414         (WebCore::SpeechSynthesis::fireEvent):
415         (WebCore::SpeechSynthesis::handleSpeakingCompleted):
416         (WebCore::SpeechSynthesis::didStartSpeaking):
417         (WebCore::SpeechSynthesis::didFinishSpeaking):
418         (WebCore::SpeechSynthesis::speakingErrorOccurred):
419         * Modules/speech/SpeechSynthesis.h:
420         (WebCore):
421         (WebCore::SpeechSynthesis::speaking):
422         (SpeechSynthesis):
423         * Modules/speech/SpeechSynthesisEvent.cpp:
424         (WebCore::SpeechSynthesisEvent::create):
425         (WebCore):
426         (WebCore::SpeechSynthesisEvent::SpeechSynthesisEvent):
427         * Modules/speech/SpeechSynthesisEvent.h:
428         (SpeechSynthesisEvent):
429         (WebCore::SpeechSynthesisEvent::interfaceName):
430         * Modules/speech/SpeechSynthesisUtterance.h:
431         (WebCore::SpeechSynthesisUtterance::startTime):
432         (WebCore::SpeechSynthesisUtterance::setStartTime):
433         (SpeechSynthesisUtterance):
434         * platform/PlatformSpeechSynthesisUtterance.cpp:
435         (WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance):
436         * platform/PlatformSpeechSynthesisUtterance.h:
437         (PlatformSpeechSynthesisUtterance):
438         (WebCore::PlatformSpeechSynthesisUtterance::setVolume):
439         (WebCore::PlatformSpeechSynthesisUtterance::setRate):
440         (WebCore::PlatformSpeechSynthesisUtterance::setPitch):
441         (WebCore::PlatformSpeechSynthesisUtterance::startTime):
442         (WebCore::PlatformSpeechSynthesisUtterance::setStartTime):
443         (WebCore::PlatformSpeechSynthesisUtterance::client):
444         * platform/PlatformSpeechSynthesizer.cpp:
445         (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
446         * platform/PlatformSpeechSynthesizer.h:
447         (PlatformSpeechSynthesizerClient):
448         (WebCore::PlatformSpeechSynthesizer::client):
449         (PlatformSpeechSynthesizer):
450         * platform/mac/PlatformSpeechSynthesizerMac.mm:
451         (-[WebSpeechSynthesisWrapper initWithSpeechSynthesizer:WebCore::]):
452         (-[WebSpeechSynthesisWrapper dealloc]):
453         (-[WebSpeechSynthesisWrapper convertRateToWPM:]):
454         (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
455         (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
456         (WebCore::PlatformSpeechSynthesizer::speak):
457
458 2013-02-10  Eric Seidel  <eric@webkit.org>
459
460         Make the existing HTMLPreloadScanner threading-aware
461         https://bugs.webkit.org/show_bug.cgi?id=107807
462
463         Reviewed by Adam Barth.
464
465         The HTMLPreloadScanner and CSSPreloadScanner do a number of things.
466         CSSPreloadScanner is mostly just a helper class for HTMLPreloadScanner.
467         HTMLPreloadScanner runs its own copy of the HTMLTokenizer and uses
468         HTMLTokenizer::updateStateFor to emulate enough of the TreeBuilder
469         to get a realistic stream of tokens.  It does some additional TreeBuilder
470         emulation, including tracking template tags and base tags, but mostly
471         just scans the token stream for start-tags and looks for URLs in them.
472         It tracks when it has seen a <style> tag and starts sending all character tokens
473         to the CSSPreloadScanner until a </style> tag is seen.
474         It also (unfortunately) knows some about the loader guts and how to construct
475         a proper CachedResourcRequest and issue a preload.
476
477         This patch changes the model so that the preload scanners only know how to produce
478         PreloadRequest objects and append them to a passed-in vector.
479
480         This changes the preload-scanner behavior so that preloads are now all issued in one large
481         batch at the end of scanning, instead of as we hit each resource.  It's possible that
482         we'll wait to instead check for preload requests more often, at a possible tradeoff
483         to tokenizing speed.
484
485         An alternate approach might be to pass in a preload-delegate of sorts which knew how
486         to either build a vector, or send requests immediately.  For now the build-a-vector-always
487         approach seems clean, and does not seem to slow down our PerformanceTest microbenchmarks at least.
488
489         This patch has 2 main pieces:
490         - Remove Document and (and loader) dependencies from HTMLPreloadScanner/CSSPreloadScanner
491           This is done through introduction of a new HTMLResourcePreloader class which holds
492           a Document* and knows how to talk to the CachedResourceLoader.
493         - Clean-up HTMLPreloadScanners token-loop to not be tied to having a Tokenizer.
494           (On a background thead, the HTMLPreloadScanner won't own the tokenizer, it will just
495            be passed in tokens and expected to issue loads if necessary.)
496
497         This passes all of the LayoutTests using the main thread parser.
498
499         This patch does not make the HTMLPreloadScanner 100% ready for threading
500         (it still uses AtomicString which is currently not-OK on the parser thread)
501         but it's very close.  Two further (already written) patches will complete this.
502
503         * CMakeLists.txt:
504         * GNUmakefile.list.am:
505         * Target.pri:
506         * WebCore.gypi:
507         * WebCore.vcproj/WebCore.vcproj:
508         * WebCore.vcxproj/WebCore.vcxproj:
509         * WebCore.xcodeproj/project.pbxproj:
510         * html/parser/CSSPreloadScanner.cpp:
511         (WebCore::CSSPreloadScanner::CSSPreloadScanner):
512         (WebCore::CSSPreloadScanner::scan):
513         (WebCore::CSSPreloadScanner::emitRule):
514         * html/parser/CSSPreloadScanner.h:
515         (CSSPreloadScanner):
516         * html/parser/HTMLDocumentParser.cpp:
517         (WebCore::HTMLDocumentParser::HTMLDocumentParser):
518         (WebCore::HTMLDocumentParser::pumpTokenizer):
519         (WebCore::HTMLDocumentParser::insert):
520         (WebCore::HTMLDocumentParser::append):
521         (WebCore::HTMLDocumentParser::appendCurrentInputStreamToPreloadScannerAndScan):
522         * html/parser/HTMLDocumentParser.h:
523         (HTMLDocumentParser):
524         * html/parser/HTMLPreloadScanner.cpp:
525         (WebCore::isStartTag):
526         (WebCore):
527         (WebCore::isStartOrEndTag):
528         (WebCore::PreloadTask::processAttributes):
529         (WebCore::PreloadTask::charset):
530         (PreloadTask):
531         (WebCore::PreloadTask::resourceType):
532         (WebCore::PreloadTask::shouldPreload):
533         (WebCore::PreloadTask::createPreloadRequest):
534         (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
535         (WebCore::HTMLPreloadScanner::scan):
536         (WebCore::HTMLPreloadScanner::processPossibleTemplateTag):
537         (WebCore::HTMLPreloadScanner::processPossibleStyleTag):
538         (WebCore::HTMLPreloadScanner::processPossibleBaseTag):
539         (WebCore::HTMLPreloadScanner::processToken):
540         * html/parser/HTMLPreloadScanner.h:
541         (HTMLPreloadScanner):
542         * html/parser/HTMLResourcePreloader.cpp: Added.
543         (WebCore):
544         (WebCore::isStringSafeToSendToAnotherThread):
545         (WebCore::PreloadRequest::isSafeToSendToAnotherThread):
546         (WebCore::PreloadRequest::completeURL):
547         (WebCore::PreloadRequest::resourceRequest):
548         (WebCore::HTMLResourcePreloader::preload):
549         * html/parser/HTMLResourcePreloader.h: Added.
550         (WebCore):
551         (PreloadRequest):
552         (WebCore::PreloadRequest::create):
553         (WebCore::PreloadRequest::PreloadRequest):
554         (HTMLResourcePreloader):
555         (WebCore::HTMLResourcePreloader::HTMLResourcePreloader):
556         (WebCore::HTMLResourcePreloader::createWeakPtr):
557         * loader/cache/CachedResourceRequest.h:
558
559 2013-02-06  Kentaro Hara  <haraken@chromium.org>
560
561         [V8] Rename isolated() to getWorld(), rename worldForEnteredContextIfIsolated() to worldForEnteredContext()
562         https://bugs.webkit.org/show_bug.cgi?id=109039
563
564         Reviewed by Adam Barth.
565
566         This is a follow-up patch for r141983.
567         Rename methods for consistency.
568
569         No tests. No change in behavior.
570
571         * bindings/v8/DOMDataStore.cpp:
572         (WebCore::DOMDataStore::current):
573         * bindings/v8/DOMWrapperWorld.h:
574         (WebCore::DOMWrapperWorld::getWorld):
575         * bindings/v8/ScriptController.cpp:
576         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
577         (WebCore::ScriptController::currentWorldContext):
578         * bindings/v8/V8Binding.h:
579         (WebCore::worldForEnteredContext):
580         * bindings/v8/WorldContextHandle.cpp:
581         (WebCore::WorldContextHandle::WorldContextHandle):
582         * bindings/v8/custom/V8DocumentCustom.cpp:
583         (WebCore::wrap):
584         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
585         (WebCore::wrap):
586         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
587         (WebCore::wrap):
588         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
589         (WebCore::V8XMLHttpRequest::constructorCallbackCustom):
590
591 2013-02-10  Alexandre Elias  <aelias@chromium.org>
592
593         [chromium] Fix Android scrollbar size
594         https://bugs.webkit.org/show_bug.cgi?id=109374
595
596         Reviewed by James Robinson.
597
598         This shrinks scrollbars to 3 device-independent pixels (usually 6
599         physical pixels) and deletes the edge fade. Although the Android
600         system theme does have an edge fade, it's a much sharper cliff
601         than we had (against black, the colors go 64 -> 64 -> 52 -> 21 -> 0)
602         and I can't perceive any difference compared with no fade at all.
603
604         No new tests (due for rewrite in a week anyway).
605
606         * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
607         (WebCore):
608         (WebCore::ScrollbarThemeChromiumAndroid::paintThumb):
609
610 2013-02-04  Kentaro Hara  <haraken@chromium.org>
611
612         [V8] Remove V8GCController::m_edenNodes and make minor DOM GC more precise
613         https://bugs.webkit.org/show_bug.cgi?id=108579
614
615         Reviewed by Adam Barth.
616
617         Currently V8GCController::m_edenNodes stores a list of nodes whose
618         wrappers have been created since the latest GC. The reason why we
619         needed m_edenNodes is that there was no way to know a list of wrappers
620         in the new space of V8. By using m_edenNodes, we had been approximating
621         'wrappers in the new space' by 'wrappers that have been created since
622         the latest GC'.
623
624         Now V8 provides VisitHandlesForPartialDependence(), with which WebKit
625         can know a list of wrappers in the new space. By using the API, we can
626         remove V8GCController::m_edenNodes. The benefit is that (1) we no longer
627         need to keep m_edenNodes and that (2) it enables more precise minor
628         DOM GC (Remember that m_edenNodes was just an approximation).
629
630         Performance benchmark: https://bugs.webkit.org/attachment.cgi?id=185940
631         The benchmark runs 300 iterations, each of which creates 100000 elements.
632         The benchmark measures average, min, median, max and stdev of execution times
633         of the 300 iterations. This will tell us the worst-case overhead of this change.
634
635         Before:
636           mean=59.91ms, min=39ms, median=42ms, max=258ms, stdev=47.48ms
637
638         After:
639           mean=58.75ms, min=35ms, median=41ms, max=250ms, stdev=47.32ms
640
641         As shown above, I couldn't observe any performance regression.
642
643         No tests. No change in behavior.
644
645         * bindings/v8/DOMDataStore.h:
646         (WebCore::DOMDataStore::setWrapperInObject):
647         * bindings/v8/DOMWrapperWorld.h:
648         (DOMWrapperWorld):
649         (WebCore::DOMWrapperWorld::getWorldWithoutContextCheck):
650         * bindings/v8/V8Binding.h:
651         (WebCore):
652         (WebCore::worldForEnteredContextIfIsolated):
653         (WebCore::worldForEnteredContextWithoutContextCheck):
654         * bindings/v8/V8DOMWindowShell.cpp:
655         (WebCore::V8DOMWindowShell::initializeIfNeeded):
656         * bindings/v8/V8GCController.cpp:
657         (WebCore::gcTree):
658         (WebCore):
659         (MinorGCWrapperVisitor):
660         (WebCore::MinorGCWrapperVisitor::MinorGCWrapperVisitor):
661         (WebCore::MinorGCWrapperVisitor::notifyFinished):
662         (WebCore::MajorGCWrapperVisitor::MajorGCWrapperVisitor):
663         (WebCore::V8GCController::gcPrologue):
664         (WebCore::V8GCController::minorGCPrologue):
665         (WebCore::V8GCController::majorGCPrologue):
666         * bindings/v8/V8GCController.h:
667         (V8GCController):
668
669 2013-02-10  Tim Horton  <timothy_horton@apple.com>
670
671         REGRESSION (r132422): Page content and scrollbars are incorrectly offset after restoring a page from the page cache
672         https://bugs.webkit.org/show_bug.cgi?id=109317
673         <rdar://problem/12649131>
674
675         Reviewed by Simon Fraser.
676
677         Mark all scrolling that occurs beneath FrameView::layout as programmatic.
678
679         Test: platform/mac-wk2/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html
680
681         * page/FrameView.cpp:
682         (WebCore::FrameView::layout):
683
684 2013-02-10  Kent Tamura  <tkent@chromium.org>
685
686         [Mac] Fix release build failure by recent reverts
687
688         * WebCore.exp.in:
689
690 2013-02-10  Philippe Normand  <pnormand@igalia.com>
691
692         [GStreamer] media/video-controls-fullscreen-volume.html crashes
693         https://bugs.webkit.org/show_bug.cgi?id=108682
694
695         Reviewed by Martin Robinson.
696
697         Clean up various signal handlers and avoid bad interaction between
698         the FullscreenVideoControllerGStreamer and its subclasses,
699         especially when the platform video window is created.
700
701         * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
702         (WebCore::FullscreenVideoControllerGStreamer::enterFullscreen):
703         Initialize the window before connecting to the volume/mute
704         signals. This ensures that the signals won't ever interfere with
705         an inexisting window.
706         * platform/graphics/gstreamer/GStreamerGWorld.cpp:
707         (WebCore::GStreamerGWorld::~GStreamerGWorld): Remove GstBus
708         synchronous handler function.
709         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
710         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
711         (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
712         Disconnect from volume/mute signals.
713         (WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement):
714         Keep a trace of volume/mute signal handlers.
715         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
716         Various forward type declarations to avoid un-necessary header includes.
717         (MediaPlayerPrivateGStreamerBase):
718         * platform/graphics/gtk/FullscreenVideoControllerGtk.cpp:
719         (WebCore::FullscreenVideoControllerGtk::FullscreenVideoControllerGtk):
720         (WebCore::FullscreenVideoControllerGtk::volumeChanged): Bail out
721         if volume button hasn't been created yet.
722         (WebCore::FullscreenVideoControllerGtk::muteChanged): Ditto.
723
724 2013-02-10  Andreas Kling  <akling@apple.com>
725
726         RenderStyle should use copy-on-write inheritance for NinePieceImage.
727         <http://webkit.org/b/109366>
728
729         Reviewed by Antti Koivisto.
730
731         Refactor NinePieceImage to hold a copy-on-write DataRef like other RenderStyle substructures.
732         This allows us to avoids copying the NinePieceImageData when one RenderStyle inherits from another
733         but modifies something in the substructure holding the NinePieceImage (typically StyleSurroundData.)
734
735         Also made RenderStyle not copy-on-write its StyleSurroundData prematurely when doing a no-op write
736         to a border-image related value.
737
738         1.23 MB progression on Membuster3.
739
740         * rendering/style/NinePieceImage.cpp:
741         (WebCore::defaultData):
742         (WebCore::NinePieceImage::NinePieceImage):
743         (WebCore::NinePieceImageData::NinePieceImageData):
744         (WebCore::NinePieceImageData::operator==):
745         * rendering/style/NinePieceImage.h:
746         (WebCore::NinePieceImageData::create):
747         (WebCore::NinePieceImageData::copy):
748         (NinePieceImageData):
749         (NinePieceImage):
750         (WebCore::NinePieceImage::operator==):
751         (WebCore::NinePieceImage::operator!=):
752         (WebCore::NinePieceImage::hasImage):
753         (WebCore::NinePieceImage::image):
754         (WebCore::NinePieceImage::setImage):
755         (WebCore::NinePieceImage::imageSlices):
756         (WebCore::NinePieceImage::setImageSlices):
757         (WebCore::NinePieceImage::fill):
758         (WebCore::NinePieceImage::setFill):
759         (WebCore::NinePieceImage::borderSlices):
760         (WebCore::NinePieceImage::setBorderSlices):
761         (WebCore::NinePieceImage::outset):
762         (WebCore::NinePieceImage::setOutset):
763         (WebCore::NinePieceImage::horizontalRule):
764         (WebCore::NinePieceImage::setHorizontalRule):
765         (WebCore::NinePieceImage::verticalRule):
766         (WebCore::NinePieceImage::setVerticalRule):
767         (WebCore::NinePieceImage::copyImageSlicesFrom):
768         (WebCore::NinePieceImage::copyBorderSlicesFrom):
769         (WebCore::NinePieceImage::copyOutsetFrom):
770         (WebCore::NinePieceImage::copyRepeatFrom):
771         (WebCore::NinePieceImage::setMaskDefaults):
772         (WebCore::NinePieceImage::computeOutset):
773         * rendering/style/RenderStyle.cpp:
774         (WebCore::RenderStyle::setBorderImageSource):
775         (WebCore::RenderStyle::setBorderImageSlices):
776         (WebCore::RenderStyle::setBorderImageWidth):
777         (WebCore::RenderStyle::setBorderImageOutset):
778         * rendering/style/RenderStyle.h:
779
780 2013-02-10  Kent Tamura  <tkent@chromium.org>
781
782         Unreviewed, rolling out r142343.
783         http://trac.webkit.org/changeset/142343
784         https://bugs.webkit.org/show_bug.cgi?id=108284
785
786         It might make inspector/profiler/selector-profiler-url.html
787         crashy.
788
789         * WebCore.exp.in:
790         * css/plugIns.css:
791         (p):
792         * html/HTMLPlugInElement.cpp:
793         (WebCore::HTMLPlugInElement::defaultEventHandler):
794         * html/HTMLPlugInImageElement.cpp:
795         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
796         (WebCore::HTMLPlugInImageElement::createRenderer):
797         (WebCore::HTMLPlugInImageElement::willRecalcStyle):
798         (WebCore::HTMLPlugInImageElement::updateSnapshot):
799         (WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
800         (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn):
801         * html/HTMLPlugInImageElement.h:
802         (WebCore):
803         (HTMLPlugInImageElement):
804         * page/ChromeClient.h:
805         (WebCore::ChromeClient::plugInStartLabelImage):
806         * platform/LocalizedStrings.cpp:
807         * platform/LocalizedStrings.h:
808         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
809         * platform/chromium/LocalizedStringsChromium.cpp:
810         * platform/efl/LocalizedStringsEfl.cpp:
811         (WebCore):
812         * platform/gtk/LocalizedStringsGtk.cpp:
813         (WebCore):
814         * platform/qt/LocalizedStringsQt.cpp:
815         * rendering/RenderSnapshottedPlugIn.cpp:
816         (WebCore):
817         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
818         (WebCore::RenderSnapshottedPlugIn::paint):
819         (WebCore::RenderSnapshottedPlugIn::paintReplaced):
820         (WebCore::RenderSnapshottedPlugIn::paintSnapshot):
821         (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot):
822         (WebCore::RenderSnapshottedPlugIn::startLabelImage):
823         (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshotWithLabel):
824         (WebCore::RenderSnapshottedPlugIn::getCursor):
825         (WebCore::RenderSnapshottedPlugIn::handleEvent):
826         (WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel):
827         * rendering/RenderSnapshottedPlugIn.h:
828
829 2013-02-10  Andreas Kling  <akling@apple.com>
830
831         RenderText: Access characters through m_text instead of caching data pointers separately.
832         <http://webkit.org/b/109357>
833
834         Reviewed by Antti Koivisto.
835
836         Go through RenderText::m_text.impl() instead of caching the character data pointer.
837         RenderText should never have a null String in m_text so it's safe to access impl() directly.
838         We have assertions for this since before.
839
840         Removing this pointer shrinks RenderText by 8 bytes, allowing it to fit into a snugger size class.
841         749 KB progression on Membuster3.
842
843         * rendering/RenderText.cpp:
844         (SameSizeAsRenderText):
845         (WebCore::RenderText::RenderText):
846         (WebCore::RenderText::setTextInternal):
847         * rendering/RenderText.h:
848         (WebCore::RenderText::is8Bit):
849         (WebCore::RenderText::characters8):
850         (WebCore::RenderText::characters16):
851         (WebCore::RenderText::characterAt):
852         (WebCore::RenderText::operator[]):
853         (RenderText):
854
855 2013-02-10  Jae Hyun Park  <jae.park08@gmail.com>
856
857         Rename ENABLE(GLIB_SUPPORT) to USE(GLIB)
858         https://bugs.webkit.org/show_bug.cgi?id=104266
859
860         Reviewed by Philippe Normand.
861
862         Using USE(GLIB) instead of ENABLE(GLIB_SUPPORT) is more consistent with
863         the existing macro naming conventions.
864
865         From Platform.h
866         USE() - use a particular third-party library or optional OS service
867         ENABLE() - turn on a specific feature of WebKit
868
869         No new tests, no new functionality.
870
871         * WebCore.pri:
872
873 2013-02-10  Zan Dobersek  <zdobersek@igalia.com>
874
875         [GTK] Build errors in TextureMapperShaderProgram.cpp when compiling with Clang
876         https://bugs.webkit.org/show_bug.cgi?id=109321
877
878         Reviewed by Noam Rosenthal.
879
880         Clang is reporting errors due to non-constant expressions that cannot be narrowed
881         from double to float type in initializer list when constructing a matrix of GC3Dfloat
882         numbers. To avoid this every parameter is passed through an explicit GC3Dfloat constructor.
883
884         No new tests - no new functionality.
885
886         * platform/graphics/texmap/TextureMapperShaderProgram.cpp:
887         (WebCore::TextureMapperShaderProgram::setMatrix):
888
889 2013-02-10  Philippe Normand  <pnormand@igalia.com>
890
891         [GStreamer] audio is muted when playback rate is between 0.8 and 2.0
892         https://bugs.webkit.org/show_bug.cgi?id=109362
893
894         Reviewed by Martin Robinson.
895
896         Don't mute sound if the audio pitch is preserved. If this is not
897         the case mute it if it's too extreme, as the HTML5 spec recommends.
898
899         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
900         (WebCore::MediaPlayerPrivateGStreamer::setRate):
901
902 2013-02-09  Dominic Mazzoni  <dmazzoni@google.com>
903
904         fast/encoding/parser-tests-*.html tests sometimes crash
905         https://bugs.webkit.org/show_bug.cgi?id=108058
906
907         Reviewed by Chris Fleizach.
908
909         To avoid calling accessibilityIsIgnored while the render
910         tree is unstable, call accessibilityIsIgnored in the
911         notification timer handler, only for childrenChanged
912         notifications.
913
914         This exposed a problem where notifications queued on
915         objects can fire after the object has been deleted; fix that
916         by checking the object's id, which is always set to 0 when
917         removed from the tree.
918
919         Covered by existing tests.
920
921         * accessibility/AXObjectCache.cpp:
922         (WebCore::AXObjectCache::childrenChanged):
923         (WebCore::AXObjectCache::notificationPostTimerFired):
924
925 2013-02-09  Eric Carlson  <eric.carlson@apple.com>
926
927         [Mac] Do not assume MediaAccessibility framework is installed
928         https://bugs.webkit.org/show_bug.cgi?id=109365
929
930         Reviewed by Sam Weinig.
931
932         * page/CaptionUserPreferencesMac.h:
933         * page/CaptionUserPreferencesMac.mm:
934         (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Call the base class if the framework
935             is not available.
936         (WebCore::CaptionUserPreferencesMac::setUserPrefersCaptions): Ditto.
937         (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): Ditto.
938         (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Ditto.
939         (WebCore::CaptionUserPreferencesMac::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
940         (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Ditto.
941         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Ditto.
942         (WebCore::CaptionUserPreferencesMac::setPreferredLanguage): Ditto.
943         (WebCore::CaptionUserPreferencesMac::preferredLanguages): Ditto.
944
945 2013-02-09  Dominic Mazzoni  <dmazzoni@google.com>
946
947         AX: move isIgnored caching to AXObject
948         https://bugs.webkit.org/show_bug.cgi?id=109322
949
950         Reviewed by Chris Fleizach.
951
952         There's some benefit to caching accessibilityIsIgnored
953         (using AXComputedObjectAttributeCache) for more than just
954         AXRenderObject, so move the caching code to AXObject.
955
956         AXObject now has a protected virtual method
957         computeAccessibilityIsIgnored, and all subclasses
958         override that instead.
959
960         No new tests.
961
962         * accessibility/AccessibilityImageMapLink.h:
963         (AccessibilityImageMapLink):
964         (WebCore::AccessibilityImageMapLink::computeAccessibilityIsIgnored):
965         * accessibility/AccessibilityList.cpp:
966         (WebCore::AccessibilityList::computeAccessibilityIsIgnored):
967         * accessibility/AccessibilityList.h:
968         (AccessibilityList):
969         * accessibility/AccessibilityListBox.cpp:
970         (WebCore::AccessibilityListBox::computeAccessibilityIsIgnored):
971         * accessibility/AccessibilityListBox.h:
972         (AccessibilityListBox):
973         * accessibility/AccessibilityListBoxOption.cpp:
974         (WebCore::AccessibilityListBoxOption::computeAccessibilityIsIgnored):
975         * accessibility/AccessibilityListBoxOption.h:
976         (AccessibilityListBoxOption):
977         * accessibility/AccessibilityMediaControls.cpp:
978         (WebCore::AccessibilityMediaControl::computeAccessibilityIsIgnored):
979         (WebCore::AccessibilityMediaTimeDisplay::computeAccessibilityIsIgnored):
980         * accessibility/AccessibilityMediaControls.h:
981         (AccessibilityMediaControl):
982         (WebCore::AccessibilityMediaControlsContainer::computeAccessibilityIsIgnored):
983         (AccessibilityMediaTimeDisplay):
984         * accessibility/AccessibilityMenuList.h:
985         (WebCore::AccessibilityMenuList::computeAccessibilityIsIgnored):
986         * accessibility/AccessibilityMenuListOption.cpp:
987         (WebCore::AccessibilityMenuListOption::computeAccessibilityIsIgnored):
988         * accessibility/AccessibilityMenuListOption.h:
989         (AccessibilityMenuListOption):
990         * accessibility/AccessibilityMenuListPopup.cpp:
991         (WebCore::AccessibilityMenuListPopup::computeAccessibilityIsIgnored):
992         * accessibility/AccessibilityMenuListPopup.h:
993         (AccessibilityMenuListPopup):
994         * accessibility/AccessibilityNodeObject.cpp:
995         (WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored):
996         * accessibility/AccessibilityNodeObject.h:
997         (AccessibilityNodeObject):
998         * accessibility/AccessibilityObject.cpp:
999         (WebCore::AccessibilityObject::accessibilityIsIgnored):
1000         (WebCore):
1001         * accessibility/AccessibilityObject.h:
1002         (AccessibilityObject):
1003         (WebCore::AccessibilityObject::computeAccessibilityIsIgnored):
1004         * accessibility/AccessibilityProgressIndicator.cpp:
1005         (WebCore::AccessibilityProgressIndicator::computeAccessibilityIsIgnored):
1006         * accessibility/AccessibilityProgressIndicator.h:
1007         (AccessibilityProgressIndicator):
1008         * accessibility/AccessibilityRenderObject.cpp:
1009         (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
1010         * accessibility/AccessibilityRenderObject.h:
1011         (AccessibilityRenderObject):
1012         * accessibility/AccessibilityScrollView.cpp:
1013         (WebCore::AccessibilityScrollView::computeAccessibilityIsIgnored):
1014         * accessibility/AccessibilityScrollView.h:
1015         (AccessibilityScrollView):
1016         * accessibility/AccessibilityScrollbar.h:
1017         (WebCore::AccessibilityScrollbar::computeAccessibilityIsIgnored):
1018         * accessibility/AccessibilitySlider.cpp:
1019         (WebCore::AccessibilitySlider::computeAccessibilityIsIgnored):
1020         (WebCore::AccessibilitySliderThumb::computeAccessibilityIsIgnored):
1021         * accessibility/AccessibilitySlider.h:
1022         (AccessibilitySlider):
1023         (AccessibilitySliderThumb):
1024         * accessibility/AccessibilitySpinButton.h:
1025         (WebCore::AccessibilitySpinButton::computeAccessibilityIsIgnored):
1026         (WebCore::AccessibilitySpinButtonPart::computeAccessibilityIsIgnored):
1027         * accessibility/AccessibilityTable.cpp:
1028         (WebCore::AccessibilityTable::computeAccessibilityIsIgnored):
1029         * accessibility/AccessibilityTable.h:
1030         (AccessibilityTable):
1031         * accessibility/AccessibilityTableCell.cpp:
1032         (WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored):
1033         * accessibility/AccessibilityTableCell.h:
1034         (AccessibilityTableCell):
1035         * accessibility/AccessibilityTableColumn.cpp:
1036         (WebCore::AccessibilityTableColumn::computeAccessibilityIsIgnored):
1037         * accessibility/AccessibilityTableColumn.h:
1038         (AccessibilityTableColumn):
1039         * accessibility/AccessibilityTableHeaderContainer.cpp:
1040         (WebCore::AccessibilityTableHeaderContainer::computeAccessibilityIsIgnored):
1041         * accessibility/AccessibilityTableHeaderContainer.h:
1042         (AccessibilityTableHeaderContainer):
1043         * accessibility/AccessibilityTableRow.cpp:
1044         (WebCore::AccessibilityTableRow::computeAccessibilityIsIgnored):
1045         * accessibility/AccessibilityTableRow.h:
1046         (AccessibilityTableRow):
1047
1048 2013-02-09  David Farler  <dfarler@apple.com>
1049
1050         Make TestWebKitAPI work for iOS
1051         https://bugs.webkit.org/show_bug.cgi?id=108978
1052
1053         Reviewed by David Kilzer.
1054
1055         Tests already exist - refactor only.
1056
1057         * WebCore.exp.in: Lumped __ZNK7WebCore4KURL7hasPathEv with related methods.
1058         * platform/KURL.cpp: Inlined hasPath() into the header
1059         * platform/KURL.h: Inlined hasPath() into the header
1060
1061 2013-02-09  Adam Barth  <abarth@webkit.org>
1062
1063         Load event fires too early with threaded HTML parser
1064         https://bugs.webkit.org/show_bug.cgi?id=108984
1065
1066         Reviewed by Eric Seidel.
1067
1068         Previously, the DocumentLoader would always be on the stack when the
1069         HTMLDocumentParser was processing data from the network.  The
1070         DocumentLoader would then tell isLoadingInAPISense not to fire the load
1071         event.  Now that we process data asynchronously with the threaded
1072         parser, the DocumentLoader is not always on the stack, which means we
1073         need to delay the load event using the clause that asks the parser
1074         whether it is processing data.
1075
1076         Unfortunately, that clause is fragile because we can check for load
1077         completion while we're switching parsers between the network-created
1078         parser and a script-created parser. To avoid accidentially triggerin
1079         the load event during these "gaps," this patch introduces a counter on
1080         document to record how many parsers are active on the stack.  While
1081         that numer is non-zero, we'll delay the load event. When that number
1082         reaches zero, we'll check for load complete.
1083
1084         That last step is required because the DocumentLoader::finishLoading
1085         method is no longer guarunteed to check for load complete after calling
1086         finish on the parser because the finish operation might complete
1087         asynchronously.
1088
1089         After this patch, the threaded parser passes all but four fast/parser
1090         tests.
1091
1092         * dom/Document.cpp:
1093         (WebCore::Document::Document):
1094         (WebCore::Document::hasActiveParser):
1095         (WebCore):
1096         (WebCore::Document::decrementActiveParserCount):
1097         * dom/Document.h:
1098         (Document):
1099         (WebCore::Document::incrementActiveParserCount):
1100         * html/parser/HTMLDocumentParser.cpp:
1101         (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
1102         (WebCore::HTMLDocumentParser::pumpTokenizer):
1103         * html/parser/HTMLParserScheduler.cpp:
1104         (WebCore::ActiveParserSession::ActiveParserSession):
1105         (WebCore):
1106         (WebCore::ActiveParserSession::~ActiveParserSession):
1107         (WebCore::PumpSession::PumpSession):
1108         (WebCore::PumpSession::~PumpSession):
1109         * html/parser/HTMLParserScheduler.h:
1110         (WebCore):
1111         (ActiveParserSession):
1112         (PumpSession):
1113         * loader/DocumentLoader.cpp:
1114         (WebCore::DocumentLoader::isLoadingInAPISense):
1115
1116 2013-02-09  Mike West  <mkwst@chromium.org>
1117
1118         Use IGNORE_EXCEPTION for initialized, but unused, ExceptionCodes.
1119         https://bugs.webkit.org/show_bug.cgi?id=109295
1120
1121         Reviewed by Darin Adler.
1122
1123         The monster patch in http://wkbug.com/108771 missed an entire class of
1124         ignored exceptions. It only dealt with call sites that never initialized
1125         the ExceptionCode variable, on the assumption that only such call sites
1126         would ignore the variable's value.
1127
1128         That was a flawed assumption: a large number of sites that initialize the
1129         ExceptionCode to 0 ignore it regardless. This patch deals with the
1130         almost-as-large set of callsites that initialize the variable, pass it to
1131         a function, and then never touch it again.
1132
1133         * Modules/indexeddb/IDBDatabase.cpp:
1134         (WebCore::IDBDatabase::forceClose):
1135         * accessibility/AccessibilityRenderObject.cpp:
1136         (WebCore::AccessibilityRenderObject::ariaSelectedTextRange):
1137         (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
1138         (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
1139         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
1140         (getSelectionOffsetsForObject):
1141         * accessibility/atk/WebKitAccessibleUtil.cpp:
1142         (selectionBelongsToObject):
1143         * dom/Node.cpp:
1144         (WebCore::Node::textRects):
1145         * editing/DeleteButtonController.cpp:
1146         (WebCore::DeleteButtonController::hide):
1147         * editing/EditingStyle.cpp:
1148         (WebCore::EditingStyle::styleAtSelectionStart):
1149         * editing/Editor.cpp:
1150         (WebCore::Editor::canDeleteRange):
1151         (WebCore::Editor::pasteAsPlainText):
1152         (WebCore::Editor::pasteAsFragment):
1153         (WebCore::Editor::shouldDeleteRange):
1154         (WebCore::Editor::dispatchCPPEvent):
1155         (WebCore::Editor::setComposition):
1156         (WebCore::Editor::advanceToNextMisspelling):
1157         (WebCore::isFrameInRange):
1158         * editing/EditorCommand.cpp:
1159         (WebCore::expandSelectionToGranularity):
1160         * editing/MergeIdenticalElementsCommand.cpp:
1161         (WebCore::MergeIdenticalElementsCommand::doApply):
1162         * editing/SplitElementCommand.cpp:
1163         (WebCore::SplitElementCommand::doUnapply):
1164         * editing/SplitTextNodeCommand.cpp:
1165         (WebCore::SplitTextNodeCommand::doApply):
1166         * editing/TextCheckingHelper.cpp:
1167         (WebCore::expandToParagraphBoundary):
1168         (WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
1169         (WebCore::TextCheckingHelper::isUngrammatical):
1170         (WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange):
1171         * editing/TextInsertionBaseCommand.cpp:
1172         (WebCore::dispatchBeforeTextInsertedEvent):
1173         (WebCore::canAppendNewLineFeedToSelection):
1174         * editing/TextIterator.cpp:
1175         (WebCore::findPlainText):
1176         * editing/htmlediting.cpp:
1177         (WebCore::extendRangeToWrappingNodes):
1178         (WebCore::isNodeVisiblyContainedWithin):
1179         * editing/visible_units.cpp:
1180         (WebCore::nextBoundary):
1181         * html/FileInputType.cpp:
1182         (WebCore::FileInputType::createShadowSubtree):
1183         * html/HTMLKeygenElement.cpp:
1184         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
1185         * html/HTMLScriptElement.cpp:
1186         (WebCore::HTMLScriptElement::setText):
1187         * html/HTMLTitleElement.cpp:
1188         (WebCore::HTMLTitleElement::setText):
1189         * html/HTMLTrackElement.cpp:
1190         (WebCore::HTMLTrackElement::didCompleteLoad):
1191         * html/RangeInputType.cpp:
1192         (WebCore::RangeInputType::createShadowSubtree):
1193         * html/SearchInputType.cpp:
1194         (WebCore::SearchInputType::createShadowSubtree):
1195         * html/TextFieldInputType.cpp:
1196         (WebCore::TextFieldInputType::createShadowSubtree):
1197         * html/track/TextTrackList.cpp:
1198         (TextTrackList::asyncEventTimerFired):
1199         * inspector/DOMPatchSupport.cpp:
1200         (WebCore::DOMPatchSupport::patchDocument):
1201         * inspector/InspectorDatabaseAgent.cpp:
1202         (WebCore):
1203         * inspector/InspectorFileSystemAgent.cpp:
1204         (WebCore):
1205         * page/DOMSelection.cpp:
1206         (WebCore::DOMSelection::addRange):
1207         * page/DragController.cpp:
1208         (WebCore::DragController::dispatchTextInputEventFor):
1209         * page/EventHandler.cpp:
1210         (WebCore::EventHandler::dispatchMouseEvent):
1211         (WebCore::EventHandler::handleTouchEvent):
1212         * page/FrameActionScheduler.cpp:
1213         (WebCore::EventFrameAction::fire):
1214         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1215         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
1216         * svg/SVGDocument.cpp:
1217         (WebCore::SVGDocument::dispatchZoomEvent):
1218         (WebCore::SVGDocument::dispatchScrollEvent):
1219         * svg/SVGLength.cpp:
1220         (WebCore::SVGLength::SVGLength):
1221         (WebCore::SVGLength::value):
1222         * xml/parser/XMLDocumentParser.cpp:
1223         (WebCore::XMLDocumentParser::exitText):
1224         * xml/parser/XMLDocumentParserQt.cpp:
1225         (WebCore::XMLDocumentParser::parse):
1226         (WebCore::XMLDocumentParser::startDocument):
1227         (WebCore::XMLDocumentParser::parseCharacters):
1228
1229 2013-02-09  Stephen White  <senorblanco@chromium.org>
1230
1231         [skia] Fix memory management in SkiaImageFilterBuilder and friends.
1232         https://bugs.webkit.org/show_bug.cgi?id=109326
1233
1234         Sadly, skia has no official ref-counted pointers, so we must make do
1235         with SkAutoTUnref.
1236
1237         Reviewed by James Robinson.
1238
1239         Correctness covered by existing tests in css3/filters.
1240
1241         * platform/graphics/filters/skia/FEBlendSkia.cpp:
1242         (WebCore::FEBlend::createImageFilter):
1243         * platform/graphics/filters/skia/FEComponentTransferSkia.cpp:
1244         (WebCore::FEComponentTransfer::createImageFilter):
1245         * platform/graphics/filters/skia/FELightingSkia.cpp:
1246         (WebCore::FELighting::createImageFilter):
1247         Adopt refs produced by the build() pass with SkAutoTUnref.
1248         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
1249         (WebCore::SkiaImageFilterBuilder::~SkiaImageFilterBuilder):
1250         Unref the builder's hashmap effect pointers.
1251         (WebCore::SkiaImageFilterBuilder::build):
1252         Ref the pointer returned to the caller, and use SkAutoTUnref
1253         internally while building the tree.
1254         * platform/graphics/filters/skia/SkiaImageFilterBuilder.h:
1255         (SkiaImageFilterBuilder):
1256         Add a destructor to SkiaImageFilterBuilder.
1257
1258
1259 2013-02-09  Dominic Mazzoni  <dmazzoni@google.com>
1260
1261         AX: Rename AXObject::cachedIsIgnoredValue to lastKnownIsIgnoredValue
1262         https://bugs.webkit.org/show_bug.cgi?id=108238
1263
1264         Reviewed by Chris Fleizach.
1265
1266         Simple refactoring, no new tests.
1267
1268         * accessibility/AXObjectCache.cpp:
1269         (WebCore::AXObjectCache::getOrCreate):
1270         (WebCore::AXObjectCache::childrenChanged):
1271         * accessibility/AccessibilityObject.cpp:
1272         (WebCore::AccessibilityObject::AccessibilityObject):
1273         (WebCore::AccessibilityObject::lastKnownIsIgnoredValue):
1274         (WebCore::AccessibilityObject::setLastKnownIsIgnoredValue):
1275         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
1276         * accessibility/AccessibilityObject.h:
1277         (AccessibilityObject):
1278
1279 2013-02-09  Anton Vayvod  <avayvod@chromium.org>
1280  
1281         [Text Autosizing] Cleanup change: converter the pointer argument to be a reference since
1282         non-null pointer is always expected.
1283         https://bugs.webkit.org/show_bug.cgi?id=109079
1284  
1285         Reviewed by Kenneth Rohde Christiansen.
1286  
1287         Cleanup change, no need to add new tests or modify the existing ones.
1288  
1289         * rendering/TextAutosizer.cpp:
1290  
1291         Changed parameter from a pointer to a reference in the methods below.
1292  
1293         (WebCore::TextAutosizer::processSubtree):
1294         (WebCore::TextAutosizer::processCluster):
1295         (WebCore::TextAutosizer::processContainer):
1296         (WebCore::TextAutosizer::isNarrowDescendant):
1297         (WebCore::TextAutosizer::isWiderDescendant):
1298         (WebCore::TextAutosizer::isAutosizingCluster):
1299         (WebCore::TextAutosizer::clusterShouldBeAutosized):
1300         (WebCore::TextAutosizer::measureDescendantTextWidth):
1301  
1302         * rendering/TextAutosizer.h: updated method prototypes.
1303
1304 2013-02-09  Rafael Brandao  <rafael.lobo@openbossa.org>
1305
1306         [TexMap] Separate classes per file in TextureMapperBackingStore.h
1307         https://bugs.webkit.org/show_bug.cgi?id=109333
1308
1309         Reviewed by Noam Rosenthal.
1310
1311         TextureMapperBackingStore.h had the classes TextureMapperBackingStore,
1312         TextureMapperTiledBackingStore, TextureMapperSurfaceBackingStore and
1313         TextureMapperTile which was quite confusing. Now each one has its
1314         own header and its own source file.
1315
1316         No new tests needed, refactoring only.
1317
1318         * CMakeLists.txt:
1319         * GNUmakefile.list.am:
1320         * Target.pri:
1321         * WebCore.gypi:
1322         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
1323         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
1324         * platform/graphics/texmap/TextureMapperBackingStore.h:
1325         * platform/graphics/texmap/TextureMapperSurfaceBackingStore.cpp: Added.
1326         (WebCore):
1327         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
1328         (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
1329         (WebCore::TextureMapperSurfaceBackingStore::texture):
1330         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
1331         * platform/graphics/texmap/TextureMapperSurfaceBackingStore.h: Added.
1332         (WebCore):
1333         (TextureMapperSurfaceBackingStore):
1334         (WebCore::TextureMapperSurfaceBackingStore::create):
1335         (WebCore::TextureMapperSurfaceBackingStore::~TextureMapperSurfaceBackingStore):
1336         (WebCore::TextureMapperSurfaceBackingStore::TextureMapperSurfaceBackingStore):
1337         * platform/graphics/texmap/TextureMapperTile.cpp: Added.
1338         (WebCore):
1339         (WebCore::TextureMapperTile::updateContents):
1340         (WebCore::TextureMapperTile::paint):
1341         * platform/graphics/texmap/TextureMapperTile.h: Added.
1342         (WebCore):
1343         (TextureMapperTile):
1344         (WebCore::TextureMapperTile::texture):
1345         (WebCore::TextureMapperTile::rect):
1346         (WebCore::TextureMapperTile::setTexture):
1347         (WebCore::TextureMapperTile::setRect):
1348         (WebCore::TextureMapperTile::~TextureMapperTile):
1349         (WebCore::TextureMapperTile::TextureMapperTile):
1350         * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp: Copied from Source/WebCore/platform/graphics/texmap/TextureMapperBackingStore.cpp.
1351         (WebCore):
1352         (WebCore::TextureMapperTiledBackingStore::TextureMapperTiledBackingStore):
1353         (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
1354         (WebCore::TextureMapperTiledBackingStore::adjustedTransformForRect):
1355         (WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
1356         (WebCore::TextureMapperTiledBackingStore::drawBorder):
1357         (WebCore::TextureMapperTiledBackingStore::drawRepaintCounter):
1358         (WebCore::TextureMapperTiledBackingStore::createOrDestroyTilesIfNeeded):
1359         (WebCore::TextureMapperTiledBackingStore::updateContents):
1360         (WebCore::TextureMapperTiledBackingStore::texture):
1361         * platform/graphics/texmap/TextureMapperTiledBackingStore.h: Added.
1362         (WebCore):
1363         (TextureMapperTiledBackingStore):
1364         (WebCore::TextureMapperTiledBackingStore::create):
1365         (WebCore::TextureMapperTiledBackingStore::~TextureMapperTiledBackingStore):
1366         (WebCore::TextureMapperTiledBackingStore::setContentsToImage):
1367         (WebCore::TextureMapperTiledBackingStore::rect):
1368         * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
1369         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
1370
1371 2013-02-09  Philip Rogers  <pdr@google.com>
1372
1373         Sanitize m_keyTimes for paced value animations
1374         https://bugs.webkit.org/show_bug.cgi?id=108828
1375
1376         Reviewed by Dirk Schulze.
1377
1378         SVG animations with calcMode=paced calculate new m_keyTimes in
1379         SVGAnimationElement::calculateKeyTimesForCalcModePaced() because paced animations do not
1380         specify keyTimes. If an error occurs while calculating m_keyTimes, and there exists
1381         user-specified values, a crash could occur because the user-specified values were not
1382         sanitized.
1383
1384         This change clears user-specified keyTimes before calculating new ones.
1385
1386         Test: svg/animations/animate-keytimes-crash.html
1387
1388         * svg/SVGAnimationElement.cpp:
1389         (WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced):
1390
1391 2013-02-09  Eric Seidel  <eric@webkit.org>
1392
1393         Fix TextDocumentParser to play nice with threading
1394         https://bugs.webkit.org/show_bug.cgi?id=109240
1395
1396         Reviewed by Adam Barth.
1397
1398         Before the HTML5 parser re-write the text document parser
1399         was completely custom.  With the HTML5 parser, we just made
1400         the TextDocumentParser use the HTMLDocumentParser with an
1401         artificial script tag.
1402
1403         However, our solution was slightly over-engineered to avoid
1404         lying about the column numbers of the first line of the text document
1405         during parsing. :)
1406
1407         This change makes us use a simpler (and threading-compatible)
1408         solution by just inserting a real "<pre>" tag into the
1409         input stream instead of hacking one together with the treebuilder
1410         and manually setting the Tokenizer state.
1411
1412         fast/parser/empty-text-resource.html covers this case.
1413
1414         * html/parser/TextDocumentParser.cpp:
1415         (WebCore::TextDocumentParser::TextDocumentParser):
1416         (WebCore::TextDocumentParser::insertFakePreElement):
1417
1418 2013-02-09  Kent Tamura  <tkent@chromium.org>
1419
1420         Add missing copyright header
1421         https://bugs.webkit.org/show_bug.cgi?id=107507
1422
1423         * Resources/pagepopups/chromium/calendarPickerChromium.css:
1424         * Resources/pagepopups/chromium/pickerCommonChromium.css:
1425
1426 2013-02-09  Kent Tamura  <tkent@chromium.org>
1427
1428         Fix crash by img[ismap] with content property
1429         https://bugs.webkit.org/show_bug.cgi?id=108702
1430
1431         Reviewed by Adam Barth.
1432
1433         Test: fast/dom/HTMLAnchorElement/anchor-ismap-crash.html
1434
1435         * html/HTMLAnchorElement.cpp:
1436         (WebCore::appendServerMapMousePosition):
1437         Check if the renderer of an img element is RenderImage.
1438
1439 2013-02-09  Mike West  <mkwst@chromium.org>
1440
1441         Drop ExceptionCode from IDB's directionToString and modeToString.
1442         https://bugs.webkit.org/show_bug.cgi?id=109143
1443
1444         Reviewed by Jochen Eisinger.
1445
1446         No caller of either IDBCursor::directionToString or
1447         IDBTransaction::modeToString makes use of the ExceptionCode these
1448         methods require. This patch removes the 'ExceptionCode&' parameter from
1449         both methods and their callsites.
1450
1451         * Modules/indexeddb/IDBCursor.cpp:
1452         (WebCore::IDBCursor::direction):
1453         (WebCore::IDBCursor::directionToString):
1454             Drop the 'ExceptionCode&' parameter, and replace the 'TypeError'
1455             exception previously generated with ASSERT_NOT_REACHED.
1456         * Modules/indexeddb/IDBCursor.h:
1457         * Modules/indexeddb/IDBTransaction.cpp:
1458         (WebCore::IDBTransaction::mode):
1459         (WebCore::IDBTransaction::modeToString):
1460             Drop the 'ExceptionCode&' parameter, and replace the 'TypeError'
1461             exception previously generated with ASSERT_NOT_REACHED.
1462         * Modules/indexeddb/IDBTransaction.h:
1463
1464 2013-02-09  Kondapally Kalyan  <kalyan.kondapally@intel.com>
1465
1466         [EFL][Qt][WebGL] Share the common code between GraphicsSurfaceGLX and X11WindowResources.
1467         https://bugs.webkit.org/show_bug.cgi?id=106666
1468
1469         Reviewed by Kenneth Rohde Christiansen.
1470
1471         Covered by existing WebGL tests.
1472
1473         This patch removes any duplicate code in X11WindowResources and
1474         GraphicsSurfaceGLX. No new functionality is added.
1475
1476         * PlatformEfl.cmake:
1477         * Target.pri:
1478         * platform/graphics/surfaces/egl/EGLConfigSelector.cpp:
1479         (WebCore::EGLConfigSelector::pixmapContextConfig):
1480         * platform/graphics/surfaces/egl/EGLConfigSelector.h:
1481         (EGLConfigSelector):
1482         * platform/graphics/surfaces/egl/EGLSurface.cpp:
1483         (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
1484         (WebCore::EGLWindowTransportSurface::destroy):
1485         (WebCore::EGLWindowTransportSurface::setGeometry):
1486         * platform/graphics/surfaces/egl/EGLSurface.h:
1487         (WebCore):
1488         (EGLWindowTransportSurface):
1489         * platform/graphics/surfaces/glx/GLXConfigSelector.h:
1490         (WebCore::GLXConfigSelector::GLXConfigSelector):
1491         (WebCore::GLXConfigSelector::visualInfo):
1492         (WebCore::GLXConfigSelector::pBufferContextConfig):
1493         (WebCore::GLXConfigSelector::createSurfaceConfig):
1494         (GLXConfigSelector):
1495         * platform/graphics/surfaces/glx/GLXContext.cpp:
1496         (WebCore::initializeARBExtensions):
1497         (WebCore::GLXOffScreenContext::GLXOffScreenContext):
1498         (WebCore::GLXOffScreenContext::initialize):
1499         (WebCore::GLXOffScreenContext::platformReleaseCurrent):
1500         (WebCore::GLXOffScreenContext::freeResources):
1501         * platform/graphics/surfaces/glx/GLXContext.h:
1502         (GLXOffScreenContext):
1503         * platform/graphics/surfaces/glx/GLXSurface.cpp:
1504         (WebCore::GLXTransportSurface::GLXTransportSurface):
1505         (WebCore::GLXTransportSurface::setGeometry):
1506         (WebCore::GLXTransportSurface::destroy):
1507         (WebCore::GLXPBuffer::initialize):
1508         * platform/graphics/surfaces/glx/GLXSurface.h:
1509         (GLXTransportSurface):
1510         (GLXPBuffer):
1511         * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
1512         (WebCore):
1513         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
1514         (WebCore::GraphicsSurfacePrivate::initialize):
1515         (GraphicsSurfacePrivate):
1516         (WebCore::GraphicsSurfacePrivate::createSurface):
1517         (WebCore::GraphicsSurfacePrivate::createPixmap):
1518         (WebCore::GraphicsSurfacePrivate::display):
1519         (WebCore::GraphicsSurfacePrivate::flags):
1520         (WebCore::GraphicsSurfacePrivate::clear):
1521         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
1522         No new functionality added. Made changes to take the common code into use.
1523
1524         * platform/graphics/surfaces/glx/X11WindowResources.h: Removed.
1525         * platform/graphics/surfaces/glx/X11Helper.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/glx/X11WindowResources.cpp.
1526         (WebCore):
1527         (WebCore::DisplayConnection::DisplayConnection):
1528         (DisplayConnection):
1529         (WebCore::DisplayConnection::~DisplayConnection):
1530         (WebCore::DisplayConnection::display):
1531         (OffScreenRootWindow):
1532         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
1533         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
1534         (WebCore::OffScreenRootWindow::rootWindow):
1535         (WebCore::X11Helper::resizeWindow):
1536         (WebCore::X11Helper::createOffScreenWindow):
1537         (WebCore::X11Helper::destroyWindow):
1538         (WebCore::X11Helper::isXRenderExtensionSupported):
1539         (WebCore::X11Helper::nativeDisplay):
1540         (WebCore::X11Helper::offscreenRootWindow):
1541         * platform/graphics/surfaces/glx/X11Helper.h: Added.
1542         (WebCore):
1543         (WebCore::handleXPixmapCreationError):
1544         (X11Helper):
1545         (ScopedXPixmapCreationErrorHandler):
1546         (WebCore::ScopedXPixmapCreationErrorHandler::ScopedXPixmapCreationErrorHandler):
1547         (WebCore::ScopedXPixmapCreationErrorHandler::~ScopedXPixmapCreationErrorHandler):
1548         (WebCore::ScopedXPixmapCreationErrorHandler::isValidOperation):
1549         Moved common code from GraphicsSurfaceGLX to X11Helper.
1550
1551 2013-02-09  Andrey Lushnikov  <lushnikov@chromium.org>
1552
1553         Web Inspector: show whitespace characters in DTE
1554         https://bugs.webkit.org/show_bug.cgi?id=108947
1555
1556         Reviewed by Pavel Feldman.
1557
1558         New test: inspector/editor/text-editor-show-whitespaces.html
1559
1560         Split consecutive whitespace characters into groups of 16, 8, 4, 2 and 1 and
1561         add ::before pseudoclass for this groups which contains necessary
1562         amount of "dots" (u+00b7). Add a setting "Show whitespace" for this
1563         option in "Sources" section of "General" tab.
1564
1565         * English.lproj/localizedStrings.js:
1566         * inspector/front-end/DefaultTextEditor.js:
1567         (WebInspector.TextEditorMainPanel.prototype.wasShown):
1568         (WebInspector.TextEditorMainPanel.prototype.willHide):
1569         (WebInspector.TextEditorMainPanel.prototype._renderRanges):
1570         (WebInspector.TextEditorMainPanel.prototype._renderWhitespaceCharsWithFixedSizeSpans):
1571         (WebInspector.TextEditorMainPanel.prototype._paintLine):
1572         * inspector/front-end/Settings.js:
1573         * inspector/front-end/SettingsScreen.js:
1574         (WebInspector.GenericSettingsTab):
1575         * inspector/front-end/inspectorSyntaxHighlight.css:
1576         (.webkit-whitespace-1::before):
1577         (.webkit-whitespace-2::before):
1578         (.webkit-whitespace-4::before):
1579         (.webkit-whitespace-8::before):
1580         (.webkit-whitespace-16::before):
1581         (.webkit-whitespace::before):
1582
1583 2013-02-08  Eric Carlson  <eric.carlson@apple.com>
1584
1585         [Mac] respect in-band caption color
1586         https://bugs.webkit.org/show_bug.cgi?id=109203
1587
1588         Reviewed by Dean Jackson.
1589
1590         Test: media/track/track-in-band-style.html
1591
1592         * WebCore.xcodeproj/project.pbxproj: Add HTMLDivElement.h to private headers because it is 
1593             included by HTMLTextElement, which is included by HTMLMediaElement.h, which is included 
1594             by files in WebKit/WebKit2.
1595         * html/track/InbandTextTrack.cpp:
1596         (WebCore::InbandTextTrack::addGenericCue): Set cue colors if necessary.
1597
1598         * html/track/TextTrackCue.h:
1599         (WebCore::TextTrackCue::element): New, accessor for the cue element so it can be styled.
1600
1601         * html/track/TextTrackCueGeneric.cpp:
1602         (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): Set container and cue background 
1603             color if necessary.
1604         (WebCore::TextTrackCueGeneric::operator==): Compare cue colors.
1605         * html/track/TextTrackCueGeneric.h:
1606         (WebCore::TextTrackCueGeneric::foregroundColor): Add color accessors.
1607         (WebCore::TextTrackCueGeneric::setForegroundColor):
1608         (WebCore::TextTrackCueGeneric::backgroundColor):
1609         (WebCore::TextTrackCueGeneric::setBackgroundColor):
1610
1611         * page/CaptionUserPreferencesMac.mm:
1612         (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Always
1613             regenerate override CSS when an element registers for callbacks.
1614         (WebCore::CaptionUserPreferencesMac::captionsWindowCSS): Drive by fix of "window color" padding.
1615         (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Log the stylesheet generated
1616             for easier debugging.
1617
1618         * platform/graphics/InbandTextTrackPrivateClient.h:
1619         (WebCore::GenericCueData::foregroundColor): Add color getters/setters.
1620         (WebCore::GenericCueData::setForegroundColor):
1621         (WebCore::GenericCueData::backgroundColor):
1622         (WebCore::GenericCueData::setBackgroundColor):
1623
1624         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
1625         (WebCore::makeRGBA32FromARGBCFArray): Initialize a RGBA32 from a CFArray of color values.
1626         (WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Process cue colors.
1627
1628 2013-02-08  Benjamin Poulain  <bpoulain@apple.com>
1629
1630         Move workerThreadCount from TestRunner to WebCore Internals
1631         https://bugs.webkit.org/show_bug.cgi?id=109239
1632
1633         Reviewed by Darin Adler.
1634
1635         Add the new read-only property workerThreadCount.
1636
1637         * testing/Internals.cpp:
1638         (WebCore::Internals::workerThreadCount):
1639         (WebCore):
1640         * testing/Internals.h:
1641         (Internals):
1642         * testing/Internals.idl:
1643
1644 2013-02-08  Dean Jackson  <dino@apple.com>
1645
1646         Snapshotted plug-in should use shadow root
1647         https://bugs.webkit.org/show_bug.cgi?id=108284
1648
1649         Reviewed by Simon Fraser.
1650
1651         Take two! This time with updated exports file.
1652
1653         A snapshotted plugin needs to indicate to the user that it can be clicked
1654         to be restarted. Previously this was done with an image that had embedded
1655         text. Instead, we now use an internal shadow root to embed some markup that
1656         will display instructions that can be localised.
1657
1658         The UA stylesheet for plug-ins provides a default styling for the label, which
1659         can be overridden by ports.
1660
1661         In the process, RenderSnapshottedPlugIn no longer inherits from RenderEmbeddedObject,
1662         since it is only responsible for drawing a paused plug-in. The snapshot creation
1663         can work with the default renderer, but a shadow root requires something like
1664         RenderBlock in order to draw its children. We swap from one renderer to another when
1665         necessary either by creating the shadow root or by explicitly detaching and attaching
1666         the plugin element.
1667
1668         Unfortunately this is difficult to test, because the snapshotting requires
1669         time to execute, and also a PluginView to be instantiated.
1670
1671         * WebCore.exp.in: Export the InlineBox interface.
1672
1673         * css/plugIns.css:
1674         (object::-webkit-snapshotted-plugin-content): New rules for a default label style.
1675
1676         * platform/LocalizedStrings.cpp: Make sure all ports have plugin strings, now it is called.
1677         * platform/LocalizedStrings.h:
1678         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
1679         * platform/chromium/LocalizedStringsChromium.cpp:
1680         * platform/efl/LocalizedStringsEfl.cpp:
1681         * platform/gtk/LocalizedStringsGtk.cpp:
1682         * platform/qt/LocalizedStringsQt.cpp:
1683
1684         * html/HTMLPlugInElement.cpp:
1685         (WebCore::HTMLPlugInElement::defaultEventHandler): Take into account the fact
1686         that RenderSnapshottedPlugIn no longer is an embedded object.
1687
1688         * html/HTMLPlugInImageElement.cpp:
1689         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New default values in constructor.
1690         (WebCore::HTMLPlugInElement::defaultEventHandler): Make sure to call base class.
1691         (WebCore::HTMLPlugInElement::willRecalcStyle): No need to reattach if we're a snapshot.
1692         (WebCore::HTMLPlugInImageElement::createRenderer): If we're showing a snapshot, create such
1693             a renderer, otherwise use the typical plug-in path.
1694         (WebCore::HTMLPlugInImageElement::updateSnapshot): Keep a record of the snapshot, since we'll
1695             need to give it to the renderer.
1696         (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Build a subtree that will display a label.
1697         * html/HTMLPlugInImageElement.h:
1698         (HTMLPlugInImageElement): New member variable to record the snapshot image and whether the label
1699             should show immediately.
1700         (WebCore::HTMLPlugInImageElement::swapRendererTimerFired): The callback function triggered when we need
1701             to swap to the Shadow Root.
1702         (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): The user has tapped on the snapshot so the plugin
1703             in being recreated. Make sure we reattach so that a plugin renderer will be created.
1704         (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Make sure we set the right
1705             displayState for snapshots.
1706         * html/HTMLPlugInImageElement.h:
1707         (HTMLPlugInImageElement): The new methods listed above.
1708         (WebCore::HTMLPlugInImageElement::setShouldShowSnapshotLabelAutomatically): Indicates whether or not
1709             a snapshot should be immediately labeled.
1710
1711         * page/ChromeClient.h: No need for plugInStartLabelImage any more.
1712
1713         * rendering/RenderSnapshottedPlugIn.cpp:
1714         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New inheritance.
1715         (WebCore::RenderSnapshottedPlugIn::paint): If we're in the background paint phase, render the snapshot image.
1716         (WebCore::RenderSnapshottedPlugIn::paintSnapshotImage): Rename.
1717         (WebCore::RenderSnapshottedPlugIn::paintSnapshot): Rename.
1718         (WebCore::RenderSnapshottedPlugIn::paintSnapshotWithLabel): Rename. No need for label sizes.
1719         (WebCore::RenderSnapshottedPlugIn::getCursor):
1720         (WebCore::RenderSnapshottedPlugIn::handleEvent): The renderer doesn't restart the plug-in any more. Tell the element and it will do it.
1721         * rendering/RenderSnapshottedPlugIn.h:
1722         (RenderSnapshottedPlugIn): New inheritance. Some method renaming.
1723
1724 2013-02-08  Dean Jackson  <dino@apple.com>
1725
1726         Rolling out r142333 and r142337 which broke Mac Release builds.
1727
1728 2013-02-08  Sheriff Bot  <webkit.review.bot@gmail.com>
1729
1730         Unreviewed, rolling out r142337.
1731         http://trac.webkit.org/changeset/142337
1732         https://bugs.webkit.org/show_bug.cgi?id=109339
1733
1734         Breaking Mac release builds (Requested by dino_ on #webkit).
1735
1736         * rendering/RenderSnapshottedPlugIn.h:
1737
1738 2013-02-08  Dean Jackson  <dino@apple.com>
1739
1740         Attempted Mac and GTK build fix after r142333.
1741
1742         * rendering/RenderSnapshottedPlugIn.h: Include InlineBox.h.
1743
1744 2013-02-08  Andy Estes  <aestes@apple.com>
1745
1746         Restore pre-r118852 behavior for EllipsisBox::nodeAtPoint()
1747         https://bugs.webkit.org/show_bug.cgi?id=109277
1748
1749         Reviewed by Simon Fraser.
1750
1751         Test: fast/flexbox/line-clamp-link-after-ellipsis.html
1752
1753         Roll out r118852. Enough time has passed that this can't be done
1754         mechanically, so transcribe the old method definition to current
1755         WebCore interfaces.
1756
1757         * rendering/EllipsisBox.cpp:
1758         (WebCore::EllipsisBox::markupBox): EllipsisBox no longer has
1759         m_markupBox, so break the logic for finding the markup box from
1760         paintMarkupBox() into its own function.
1761         (WebCore::EllipsisBox::paintMarkupBox): Call markupBox().
1762         (WebCore::EllipsisBox::nodeAtPoint): Transcribe the pre-r118852 implementation.
1763         * rendering/EllipsisBox.h:
1764         (EllipsisBox): Declare markupBox().
1765
1766 2013-02-08  Eric Carlson  <eric.carlson@apple.com>
1767
1768         [Mac] In-band closed caption tracks are not always initialized correctly
1769         https://bugs.webkit.org/show_bug.cgi?id=109323
1770
1771         Reviewed by Dean Jackson.
1772
1773         No new tests, this fix makes existing tests less flakey.
1774
1775         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1776         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Create and configure legible output
1777             here instad of in tracksChanged.
1778         (WebCore::MediaPlayerPrivateAVFoundationObjC::setClosedCaptionsVisible): Do nothing in a build with
1779             in-band track support.
1780         (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Move legible output creation to 
1781             createAVPlayerItem, don't set look at track media type to see if the movie has captions 
1782             when we have support for in-band captions.
1783
1784 2013-02-08  Dean Jackson  <dino@apple.com>
1785
1786         Snapshotted plug-in should use shadow root
1787         https://bugs.webkit.org/show_bug.cgi?id=108284
1788
1789         Reviewed by Simon Fraser.
1790
1791         A snapshotted plugin needs to indicate to the user that it can be clicked
1792         to be restarted. Previously this was done with an image that had embedded
1793         text. Instead, we now use an internal shadow root to embed some markup that
1794         will display instructions that can be localised.
1795
1796         The UA stylesheet for plug-ins provides a default styling for the label, which
1797         can be overridden by ports.
1798
1799         In the process, RenderSnapshottedPlugIn no longer inherits from RenderEmbeddedObject,
1800         since it is only responsible for drawing a paused plug-in. The snapshot creation
1801         can work with the default renderer, but a shadow root requires something like
1802         RenderBlock in order to draw its children. We swap from one renderer to another when
1803         necessary either by creating the shadow root or by explicitly detaching and attaching
1804         the plugin element.
1805
1806         Unfortunately this is difficult to test, because the snapshotting requires
1807         time to execute, and also a PluginView to be instantiated.
1808
1809         * css/plugIns.css:
1810         (object::-webkit-snapshotted-plugin-content): New rules for a default label style.
1811
1812         * platform/LocalizedStrings.cpp: Make sure all ports have plugin strings, now it is called.
1813         * platform/LocalizedStrings.h:
1814         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
1815         * platform/chromium/LocalizedStringsChromium.cpp:
1816         * platform/efl/LocalizedStringsEfl.cpp:
1817         * platform/gtk/LocalizedStringsGtk.cpp:
1818         * platform/qt/LocalizedStringsQt.cpp:
1819
1820         * html/HTMLPlugInElement.cpp:
1821         (WebCore::HTMLPlugInElement::defaultEventHandler): Take into account the fact
1822         that RenderSnapshottedPlugIn no longer is an embedded object.
1823
1824         * html/HTMLPlugInImageElement.cpp:
1825         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New default values in constructor.
1826         (WebCore::HTMLPlugInElement::defaultEventHandler): Make sure to call base class.
1827         (WebCore::HTMLPlugInElement::willRecalcStyle): No need to reattach if we're a snapshot.
1828         (WebCore::HTMLPlugInImageElement::createRenderer): If we're showing a snapshot, create such
1829             a renderer, otherwise use the typical plug-in path.
1830         (WebCore::HTMLPlugInImageElement::updateSnapshot): Keep a record of the snapshot, since we'll
1831             need to give it to the renderer.
1832         (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Build a subtree that will display a label.
1833         * html/HTMLPlugInImageElement.h:
1834         (HTMLPlugInImageElement): New member variable to record the snapshot image and whether the label
1835             should show immediately.
1836         (WebCore::HTMLPlugInImageElement::swapRendererTimerFired): The callback function triggered when we need
1837             to swap to the Shadow Root.
1838         (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): The user has tapped on the snapshot so the plugin
1839             in being recreated. Make sure we reattach so that a plugin renderer will be created.
1840         (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Make sure we set the right
1841             displayState for snapshots.
1842         * html/HTMLPlugInImageElement.h:
1843         (HTMLPlugInImageElement): The new methods listed above.
1844         (WebCore::HTMLPlugInImageElement::setShouldShowSnapshotLabelAutomatically): Indicates whether or not
1845             a snapshot should be immediately labeled.
1846
1847         * page/ChromeClient.h: No need for plugInStartLabelImage any more.
1848
1849         * rendering/RenderSnapshottedPlugIn.cpp:
1850         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New inheritance.
1851         (WebCore::RenderSnapshottedPlugIn::paint): If we're in the background paint phase, render the snapshot image.
1852         (WebCore::RenderSnapshottedPlugIn::paintSnapshotImage): Rename.
1853         (WebCore::RenderSnapshottedPlugIn::paintSnapshot): Rename.
1854         (WebCore::RenderSnapshottedPlugIn::paintSnapshotWithLabel): Rename. No need for label sizes.
1855         (WebCore::RenderSnapshottedPlugIn::getCursor):
1856         (WebCore::RenderSnapshottedPlugIn::handleEvent): The renderer doesn't restart the plug-in any more. Tell the element and it will do it.
1857         * rendering/RenderSnapshottedPlugIn.h:
1858         (RenderSnapshottedPlugIn): New inheritance. Some method renaming.
1859
1860 2013-02-08  Kentaro Hara  <haraken@chromium.org>
1861
1862         {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator should be in FocusEvent.cpp
1863         https://bugs.webkit.org/show_bug.cgi?id=109265
1864
1865         Reviewed by Dimitri Glazkov.
1866
1867         Conventionally we put XXXEventDispatchMediator to XXXEvent.cpp.
1868         We should move {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator to FocusEvent.cpp.
1869
1870         No tests. No change in behavior.
1871
1872         * dom/EventDispatchMediator.cpp:
1873         * dom/EventDispatchMediator.h:
1874         * dom/FocusEvent.cpp:
1875         (WebCore::FocusEventDispatchMediator::create):
1876         (WebCore):
1877         (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
1878         (WebCore::FocusEventDispatchMediator::dispatchEvent):
1879         (WebCore::BlurEventDispatchMediator::create):
1880         (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
1881         (WebCore::BlurEventDispatchMediator::dispatchEvent):
1882         (WebCore::FocusInEventDispatchMediator::create):
1883         (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
1884         (WebCore::FocusInEventDispatchMediator::dispatchEvent):
1885         (WebCore::FocusOutEventDispatchMediator::create):
1886         (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
1887         (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
1888         * dom/FocusEvent.h:
1889         (WebCore):
1890         (FocusEventDispatchMediator):
1891         (BlurEventDispatchMediator):
1892         (FocusInEventDispatchMediator):
1893         (FocusOutEventDispatchMediator):
1894         * dom/UIEvent.cpp:
1895         * dom/UIEvent.h:
1896
1897 2013-02-08  Jer Noble  <jer.noble@apple.com>
1898
1899         Unreviewed build fix. MSVC (and other compilers) need a default: case in switch statement.
1900
1901         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
1902         (WebCore::notificationName):
1903
1904 2013-02-08  Jer Noble  <jer.noble@apple.com>
1905
1906         Bring WebKit up to speed with latest Encrypted Media spec.
1907         https://bugs.webkit.org/show_bug.cgi?id=97037
1908
1909         Reviewed by Eric Carlson.
1910
1911         The most recent version of the Encrypted Media Extensions spec breaks functionality out of the
1912         HTMLMediaElement and into new MediaKeys and MediaKeySession classes. Since the CDM functionality
1913         has been pulled out of the media element, we create a proxy CDM class and factory system for
1914         creating specific CDM key system implementations. The spec also breaks out MediaKeyEvent
1915         into distinct event classes, MediaKeyNeededEvent and MediaKeyMessageEvent, for needkey and
1916         keymessage events, respectively.
1917
1918         Tests: media/encrypted-media/encrypted-media-v2-events.html
1919                media/encrypted-media/encrypted-media-v2-syntax.html
1920
1921         CDM is a proxy class (a la MediaPlayer) for a specific CDMPrivateInterface implementation. A CDM
1922         implementation is registered with the CDMFactory and will be created if that implementation supports
1923         the key system passed into the MediaKeys constructor. CDMSession is a pure-virtual interface exposed
1924         by concrete CDMPrivate subclasses.  Its lifetime is owned by MediaKeySession.
1925         * Modules/encryptedmedia/CDM.cpp: Added.
1926         (WebCore::installedCDMFactories): Initialize all the known CDM subtypes. Ports will add CDM implementations here.
1927         (WebCore::CDM::registerCDMFactory): Registers a new CDMFactory using the passed in function pointers.
1928         (WebCore::CDMFactoryForKeySystem): Return the first CDM factory which supports the requested key system.
1929         (WebCore::CDM::supportsKeySystem): Walk the installed CDMs and ask if the given key system is supported.
1930         (WebCore::CDM::supportsKeySystemMIMETypeAndCodec): Ditto, with an additional MIME type and codec string.
1931         (WebCore::CDM::create): Simple constructor wrapper.
1932         (WebCore::CDM::CDM): Simple constructor; calls bestCDMForKeySystem() to create it's private implementation.
1933         (WebCore::CDM::~CDM): Simple destructor.
1934         (WebCore::CDM::createSession): Creates a new CDMSession.
1935         * Modules/encryptedmedia/CDM.h: Added.
1936         (WebCore::CDM::keySystem): Simple accessor for m_keySystem.
1937         (WebCore::CDMSession::CDMSession): Simple constructor.
1938         (WebCore::CDMSession::~CDMSession): Simple destructor.
1939         * Modules/encryptedmedia/CDMPrivate.h: Added.
1940         (WebCore::CDMPrivateInterface::CDMPrivateInterface): Simple constructor.
1941         (WebCore::CDMPrivateInterface::~CDMPrivateInterface): Simple destructor.
1942
1943         The new classes, MediaKeyMessageEvent and MediaKeyNeededEvent, take distinct subsets of the initializers of
1944         the original MediaKeyMessageEvent.
1945         * Modules/encryptedmedia/MediaKeyMessageEvent.cpp: Copied from Source/WebCore/html/MediaKeyEvent.cpp.
1946         (WebCore::MediaKeyMessageEventInit::MediaKeyMessageEventInit): Initializer now only takes message and destinationURL
1947             parameters.
1948         (WebCore::MediaKeyMessageEvent::MediaKeyMessageEvent): Simple constructor.
1949         (WebCore::MediaKeyMessageEvent::~MediaKeyMessageEvent): Simple destructor.
1950         (WebCore::MediaKeyMessageEvent::interfaceName): Standard interfaceName.
1951         * Modules/encryptedmedia/MediaKeyMessageEvent.h: Copied from Source/WebCore/html/MediaKeyEvent.h.
1952         (WebCore::MediaKeyMessageEvent::create): Simple construction wrapper.
1953         (WebCore::MediaKeyMessageEvent::message): Simple accessor for m_message.
1954         (WebCore::MediaKeyMessageEvent::destinationURL): Simple accessor for m_destinationURL.
1955         * Modules/encryptedmedia/MediaKeyMessageEvent.idl: Copied from Source/WebCore/html/MediaKeyEvent.idl.
1956         * Modules/encryptedmedia/MediaKeyNeededEvent.cpp: Copied from Source/WebCore/html/MediaKeyEvent.h.
1957         (WebCore::MediaKeyNeededEventInit::MediaKeyNeededEventInit): Initializer now only takes initData parameter.
1958         (WebCore::MediaKeyNeededEvent::MediaKeyNeededEvent): Simple constructor.
1959         (WebCore::MediaKeyNeededEvent::~MediaKeyNeededEvent): Simple destructor.
1960         (WebCore::MediaKeyNeededEvent::interfaceName): Standard interfaceName.
1961         * Modules/encryptedmedia/MediaKeyNeededEvent.h: Copied from Source/WebCore/html/MediaKeyEvent.h.
1962         (WebCore::MediaKeyNeededEvent::create): Simple construction wrapper.
1963         (WebCore::MediaKeyNeededEvent::initData): Simple accessor for m_initData.
1964         * Modules/encryptedmedia/MediaKeyNeededEvent.idl: Copied from Source/WebCore/html/MediaKeyEvent.idl.
1965
1966         MediaKeySession is a new class that maps keys and key requests to a given session ID:
1967         * Modules/encryptedmedia/MediaKeySession.cpp: Added.
1968         (WebCore::MediaKeySession::create): Simple construction wrapper.
1969         (WebCore::MediaKeySession::MediaKeySession): Simple constructor.
1970         (WebCore::MediaKeySession::~MediaKeySession): Simple destructor; calls close().
1971         (WebCore::MediaKeySession::setError): Simple setter for m_error;
1972         (WebCore::MediaKeySession::close): Tell the CDM to clear any saved session keys.
1973         (WebCore::MediaKeySession::generateKeyRequest): Start a one-shot timer, handled in keyRequestTimerFired.
1974         (WebCore::MediaKeySession::keyRequestTimerFired): Follow the steps in the spec; ask the CDM to generate a key request.
1975         (WebCore::MediaKeySession::addKey): Start a one-shot timer, handled in addKeyTimerFired.
1976         (WebCore::MediaKeySession::addKeyTimerFired): Follow the steps in the spec; provide the key data to the CDM.
1977         * Modules/encryptedmedia/MediaKeySession.h: Added.
1978         (WebCore::MediaKeySession::keySystem): Simple accessor for m_keySystem.
1979         (WebCore::MediaKeySession::sessionId): Simple accessor for m_sessionId.
1980         (WebCore::MediaKeySession::error): Simple accessor for m_error;
1981         * Modules/encryptedmedia/MediaKeySession.idl:
1982
1983         MediaKeySession inherits from EventTarget, and must override the pure virtual functions in that class:
1984         * Modules/encryptedmedia/MediaKeySession.cpp: Added.
1985         (WebCore::MediaKeySession::interfaceName):
1986         * Modules/encryptedmedia/MediaKeySession.h: Added.
1987         (WebCore::MediaKeySession::refEventTarget):
1988         (WebCore::MediaKeySession::derefEventTarget):
1989         (WebCore::MediaKeySession::eventTargetData):
1990         (WebCore::MediaKeySession::ensureEventTargetData):
1991         (WebCore::MediaKeySession::scriptExecutionContext):
1992
1993         MediaKeys is a new class that encapsulates a CDM and a number of key sessions:
1994         * Modules/encryptedmedia/MediaKeys.cpp: Added.
1995         (WebCore::MediaKeys::create): Throw an exception if the key system parameter is unsupported; create a CDM object
1996             and a new MediaKeys session.
1997         (WebCore::MediaKeys::MediaKeys): Simple constructor.
1998         (WebCore::MediaKeys::~MediaKeys): Simple destructor.
1999         (WebCore::MediaKeys::createSession): Follow the spec and create a new key session.
2000         * Modules/encryptedmedia/MediaKeys.h: Added.
2001         * Modules/encryptedmedia/MediaKeys.idl: Copied from Source/WebCore/html/MediaError.idl.
2002
2003         Provide a new interface to HTMLMediaElement for MediaPlayer which does not require a sessionId or a key system:
2004         * html/HTMLMediaElement.cpp:
2005         (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
2006         * platform/graphics/MediaPlayer.cpp:
2007         (WebCore::MediaPlayer::keyNeeded):
2008
2009         MediaKeyError now has a systemCode parameter and member variable.
2010         * html/MediaKeyError.h:
2011         (WebCore::MediaKeyError::create): Take a systemCode parameter with a default (0) value.
2012         (WebCore::MediaKeyError::MediaKeyError): Ditto.
2013         (WebCore::MediaKeyError::systemCode): Simple accessor for m_systemCode.
2014         * html/MediaKeyError.idl:
2015
2016         Add new methods to HTMLMediaElement to support MediaKeys. Support different initializer
2017         for the MediaKeyNeededEvent.
2018         * html/HTMLMediaElement.cpp:
2019         (WebCore::HTMLMediaElement::setMediaKeys): Simple setter for m_mediaKeys.
2020         (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): This version takes fewer parameters
2021             than the deprecated version.
2022         * html/HTMLMediaElement.h:
2023         (WebCore::HTMLMediaElement::mediaKeys): Simple accessor for m_mediaKeys.
2024         * html/HTMLMediaElement.idl: Add the mediaKeys attribute.
2025
2026         Add an ENABLE(ENCRYPTED_MEDIA_V2) check to the existing ENABLE(ENCRYPTED_MEDIA) one:
2027         * html/MediaError.h:
2028         * html/MediaError.idl:
2029         * platform/graphics/MediaPlayer.cpp:
2030         (WebCore::bestMediaEngineForTypeAndCodecs):
2031         (WebCore::MediaPlayer::supportsType):
2032         * platform/graphics/MediaPlayer.h:
2033         (WebCore::MediaPlayer::keyNeeded): This version takes fewer parameters than the
2034             deprecated version.
2035
2036         Support the new version of canPlayType which takes an extra parameter:
2037         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2038         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2039         (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
2040         (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType):
2041         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
2042         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2043         (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine):
2044         (WebCore::MediaPlayerPrivateQTKit::extendedSupportsType):
2045
2046         Add a mock CDM for use within DRT and WKTR to test the MediaKeys and MediaKeySession
2047         APIs and events:
2048         * testing/Internals.cpp:
2049         (WebCore::Internals::initializeMockCDM): Add the MockCDM class to the CDM factories.
2050         * testing/Internals.h:
2051         * testing/Internals.idl: Add the initializeMockCDM() method.
2052         * testing/MockCDM.cpp: Added.
2053         (WebCore::MockCDM::supportsKeySystem): Only supports the 'com.webcore.mock' key system.
2054         (WebCore::MockCDM::supportsMIMEType): Only supports the 'video/mock' mime type.
2055         (WebCore::initDataPrefix): Static method which returns a Uint8Array containing 'mock'.
2056         (WebCore::keyPrefix): Static method which returns a Uint8Array containing 'key'.
2057         (WebCore::keyRequest): Static method which returns a Uint8Array containing 'request'.
2058         (WebCore::generateSessionId): Return a monotonically increasing number.
2059         (WebCore::MockCDMSession::MockCDMSession): Simple constructor.
2060         (WebCore::MockCDMSession::generateKeyRequest): Ignores the parameters and returns a keyRequest() array.
2061         (WebCore::MockCDMSession::releaseKeys): No-op.
2062         (WebCore::MockCDMSession::addKey): Checks that the key starts with the keyPrefix() array.
2063         * testing/MockCDM.h: Added.
2064         (WebCore::MockCDM::create):
2065         (WebCore::MockCDM::~MockCDM): Simple destructor.
2066         (WebCore::MockCDM::MockCDM): Simple constructor.
2067
2068         Add the new classes to the built system:
2069         * Configurations/FeatureDefines.xcconfig:
2070         * DerivedSources.make:
2071         * WebCore.exp.in:
2072         * WebCore.xcodeproj/project.pbxproj:
2073
2074         Miscelaneous changes:
2075         * dom/EventNames.in: Add the two new event types, MediaKeyMessageEvent and MediaKeyNeededEvent.
2076         * dom/EventTargetFactory.in: Add the new EventTarget, MediaKeySession.
2077         * page/DOMWindow.idl: Add constructors for the new classes to the window object.
2078
2079 2013-02-08  Chris Fleizach  <cfleizach@apple.com>
2080
2081         Refactor platform-specific code in SpeechSynthesis
2082         https://bugs.webkit.org/show_bug.cgi?id=107414
2083
2084         Reviewed by Sam Weinig.
2085
2086         Refactor WebSpeech code to use a platform mechanism to provide access to platform resources.
2087
2088         * Modules/speech/DOMWindowSpeechSynthesis.cpp:
2089         (WebCore::DOMWindowSpeechSynthesis::from):
2090         * Modules/speech/SpeechSynthesis.cpp:
2091         (WebCore::SpeechSynthesis::SpeechSynthesis):
2092         (WebCore):
2093         (WebCore::SpeechSynthesis::voicesDidChange):
2094         (WebCore::SpeechSynthesis::getVoices):
2095         (WebCore::SpeechSynthesis::pending):
2096         (WebCore::SpeechSynthesis::speaking):
2097         (WebCore::SpeechSynthesis::paused):
2098         (WebCore::SpeechSynthesis::speak):
2099         (WebCore::SpeechSynthesis::cancel):
2100         (WebCore::SpeechSynthesis::pause):
2101         (WebCore::SpeechSynthesis::resume):
2102         * Modules/speech/SpeechSynthesis.h:
2103         (WebCore):
2104         (SpeechSynthesis):
2105         (WebCore::SpeechSynthesis::didStartSpeaking):
2106         (WebCore::SpeechSynthesis::didFinishSpeaking):
2107         (WebCore::SpeechSynthesis::speakingErrorOccurred):
2108         * Modules/speech/SpeechSynthesisUtterance.cpp:
2109         (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
2110         * Modules/speech/SpeechSynthesisUtterance.h:
2111         (WebCore::SpeechSynthesisUtterance::text):
2112         (WebCore::SpeechSynthesisUtterance::setText):
2113         (WebCore::SpeechSynthesisUtterance::lang):
2114         (WebCore::SpeechSynthesisUtterance::setLang):
2115         (WebCore::SpeechSynthesisUtterance::voiceURI):
2116         (WebCore::SpeechSynthesisUtterance::setVoiceURI):
2117         (WebCore::SpeechSynthesisUtterance::volume):
2118         (WebCore::SpeechSynthesisUtterance::setVolume):
2119         (WebCore::SpeechSynthesisUtterance::rate):
2120         (WebCore::SpeechSynthesisUtterance::setRate):
2121         (WebCore::SpeechSynthesisUtterance::pitch):
2122         (WebCore::SpeechSynthesisUtterance::setPitch):
2123         (SpeechSynthesisUtterance):
2124         (WebCore::SpeechSynthesisUtterance::platformUtterance):
2125         * Modules/speech/SpeechSynthesisVoice.cpp:
2126         (WebCore::SpeechSynthesisVoice::create):
2127         (WebCore::SpeechSynthesisVoice::SpeechSynthesisVoice):
2128         * Modules/speech/SpeechSynthesisVoice.h:
2129         (SpeechSynthesisVoice):
2130         (WebCore::SpeechSynthesisVoice::voiceURI):
2131         (WebCore::SpeechSynthesisVoice::name):
2132         (WebCore::SpeechSynthesisVoice::lang):
2133         (WebCore::SpeechSynthesisVoice::localService):
2134         (WebCore::SpeechSynthesisVoice::isDefault):
2135         * Modules/speech/mac/SpeechSynthesisMac.mm:
2136         * WebCore.xcodeproj/project.pbxproj:
2137         * platform/PlatformSpeechSynthesis.h: Added.
2138         (WebCore):
2139         (PlatformSpeechSynthesis):
2140         * platform/PlatformSpeechSynthesisUtterance.cpp: Added.
2141         (WebCore):
2142         (WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance):
2143         * platform/PlatformSpeechSynthesisUtterance.h: Added.
2144         (WebCore):
2145         (PlatformSpeechSynthesisUtteranceClient):
2146         (WebCore::PlatformSpeechSynthesisUtteranceClient::~PlatformSpeechSynthesisUtteranceClient):
2147         (PlatformSpeechSynthesisUtterance):
2148         (WebCore::PlatformSpeechSynthesisUtterance::text):
2149         (WebCore::PlatformSpeechSynthesisUtterance::setText):
2150         (WebCore::PlatformSpeechSynthesisUtterance::lang):
2151         (WebCore::PlatformSpeechSynthesisUtterance::setLang):
2152         (WebCore::PlatformSpeechSynthesisUtterance::voiceURI):
2153         (WebCore::PlatformSpeechSynthesisUtterance::setVoiceURI):
2154         (WebCore::PlatformSpeechSynthesisUtterance::volume):
2155         (WebCore::PlatformSpeechSynthesisUtterance::setVolume):
2156         (WebCore::PlatformSpeechSynthesisUtterance::rate):
2157         (WebCore::PlatformSpeechSynthesisUtterance::setRate):
2158         (WebCore::PlatformSpeechSynthesisUtterance::pitch):
2159         (WebCore::PlatformSpeechSynthesisUtterance::setPitch):
2160         * platform/PlatformSpeechSynthesisVoice.cpp: Added.
2161         (WebCore):
2162         (WebCore::PlatformSpeechSynthesisVoice::create):
2163         (WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
2164         * platform/PlatformSpeechSynthesisVoice.h: Added.
2165         (WebCore):
2166         (PlatformSpeechSynthesisVoice):
2167         (WebCore::PlatformSpeechSynthesisVoice::voiceURI):
2168         (WebCore::PlatformSpeechSynthesisVoice::name):
2169         (WebCore::PlatformSpeechSynthesisVoice::lang):
2170         (WebCore::PlatformSpeechSynthesisVoice::localService):
2171         (WebCore::PlatformSpeechSynthesisVoice::isDefault):
2172         * platform/PlatformSpeechSynthesizer.cpp: Added.
2173         (WebCore):
2174         (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
2175         * platform/PlatformSpeechSynthesizer.h: Added.
2176         (WebCore):
2177         (PlatformSpeechSynthesizerClient):
2178         (WebCore::PlatformSpeechSynthesizerClient::~PlatformSpeechSynthesizerClient):
2179         (PlatformSpeechSynthesizer):
2180         (WebCore::PlatformSpeechSynthesizer::voiceList):
2181         * platform/mac/PlatformSpeechSynthesisMac.mm: Added.
2182         (WebCore):
2183         (WebCore::PlatformSpeechSynthesis::create):
2184         (WebCore::PlatformSpeechSynthesis::PlatformSpeechSynthesis):
2185         (WebCore::PlatformSpeechSynthesis::platformSpeak):
2186         * platform/mac/PlatformSpeechSynthesizerMac.mm: Added.
2187         (WebCore):
2188         (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
2189         (WebCore::PlatformSpeechSynthesizer::speak):
2190
2191 2013-02-08  Dean Jackson  <dino@apple.com>
2192
2193         Put snapshotting label text into localizable strings
2194         https://bugs.webkit.org/show_bug.cgi?id=108268
2195
2196         Reviewed by Simon Fraser.
2197
2198         In preparation for a snapshotted plug-in using a ShadowRoot, allow
2199         its label to be localized.
2200
2201         * English.lproj/Localizable.strings:
2202         * platform/LocalizedStrings.cpp:
2203         (WebCore::snapshottedPlugInLabelTitle): New method for returning title.
2204         (WebCore::snapshottedPlugInLabelSubtitle): New method for returning subtitle.
2205         * platform/LocalizedStrings.h:
2206
2207 2013-02-08  Dean Jackson  <dino@apple.com>
2208
2209         Do not register autostart for plugins from file:// (or nowhere)
2210         https://bugs.webkit.org/show_bug.cgi?id=108271
2211
2212         Reviewed by Tim Horton.
2213
2214         If the page url origin is treated as a local URL, don't attempt
2215         to add it to the auto-start list.
2216
2217         * html/HTMLPlugInImageElement.cpp:
2218         (WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
2219
2220 2013-02-08  Adam Barth  <abarth@webkit.org>
2221
2222         Use WeakPtrs to communicate between the HTMLDocumentParser and the BackgroundHTMLParser
2223         https://bugs.webkit.org/show_bug.cgi?id=107190
2224
2225         Reviewed by Eric Seidel.
2226
2227         This patch replaces the parser map with WeakPtr. We now use WeakPtrs to
2228         communicate from the main thread to the background thread. (We were
2229         already using WeakPtrs to communicate from the background thread to the
2230         main thread.) This change lets us remove a bunch of boilerplate code.
2231
2232         * html/parser/BackgroundHTMLParser.cpp:
2233         (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
2234         (WebCore::BackgroundHTMLParser::stop):
2235         (WebCore):
2236         * html/parser/BackgroundHTMLParser.h:
2237         (WebCore::BackgroundHTMLParser::create):
2238         (BackgroundHTMLParser):
2239         * html/parser/HTMLDocumentParser.cpp:
2240         (WebCore::HTMLDocumentParser::didFailSpeculation):
2241         (WebCore::HTMLDocumentParser::startBackgroundParser):
2242         (WebCore::HTMLDocumentParser::stopBackgroundParser):
2243         (WebCore::HTMLDocumentParser::append):
2244         (WebCore::HTMLDocumentParser::finish):
2245         * html/parser/HTMLDocumentParser.h:
2246         (WebCore):
2247         (HTMLDocumentParser):
2248
2249 2013-02-07  Roger Fong  <roger_fong@apple.com>
2250
2251         VS2010 WebCore TestSupport project.
2252         https://bugs.webkit.org/show_bug.cgi?id=107034.
2253
2254         Reviewed by Brent Fulgham.
2255
2256         * WebCore.vcxproj/WebCoreTestSupport.vcxproj: Added.
2257         * WebCore.vcxproj/WebCoreTestSupport.vcxproj.filters: Added.
2258
2259 2013-02-08  ChangSeok Oh  <shivamidow@gmail.com>
2260
2261         [GTK][AC] GraphicsLayerActor code clean up after clutter version up.
2262         https://bugs.webkit.org/show_bug.cgi?id=109304
2263
2264         Reviewed by Gustavo Noronha Silva.
2265
2266         This patch cleans up GraphicsLayerActor functions by using new clutter apis
2267         and makes existing functions simple & readable.
2268
2269         No new tests since no change in functionality
2270
2271         * platform/graphics/clutter/GraphicsLayerActor.cpp:
2272         (_GraphicsLayerActorPrivate):
2273         (graphicsLayerActorApplyTransform):
2274         (graphicsLayerActorPaint):
2275         (graphicsLayerActorDraw):
2276         (graphicsLayerActorUpdateTexture):
2277         (drawLayerContents):
2278         (graphicsLayerActorNew):
2279         (graphicsLayerActorInvalidateRectangle):
2280         (graphicsLayerActorSetTransform):
2281         (graphicsLayerActorSetAnchorPoint):
2282         (graphicsLayerActorGetAnchorPoint):
2283         (graphicsLayerActorSetScrollPosition):
2284         * platform/graphics/clutter/PlatformClutterAnimation.h:
2285
2286 2013-02-08  Harald Alvestrand  <hta@google.com>
2287
2288         Fix and test for missing return statement
2289
2290         RTCPeerConnection.getStats() failed when remote stats were instantiated.
2291         https://bugs.webkit.org/show_bug.cgi?id=109292
2292
2293         Reviewed by Adam Barth.
2294
2295         Tested by extending the existing mock's behaviour.
2296
2297         * Modules/mediastream/RTCStatsReport.cpp:
2298         (WebCore::RTCStatsReport::addElement):
2299
2300 2013-02-08  Anton Vayvod  <avayvod@chromium.org>
2301
2302         [Text Autosizing] Split isAutosizingCluster into three independent checks
2303         https://bugs.webkit.org/show_bug.cgi?id=109093
2304
2305         Refactoring to create more flexible version of isAutosizingCluster since there're more types
2306         of autosizing cluster now: narrower than the parent cluster, wider than the parent cluster
2307         and the one that doesn't depend on the parent cluster.
2308
2309         Reviewed by Kenneth Rohde Christiansen.
2310
2311         Refactoring, no test changes.
2312
2313         * rendering/TextAutosizer.cpp:
2314
2315         (WebCore::TextAutosizer::isNarrowDescendant):
2316
2317             Separate check for the container to be of the narrow-descendant type. Was a part of
2318             isAutosizingCluster().
2319
2320         (WebCore::TextAutosizer::isWiderDescendant):
2321
2322             Separate check for the container to be of the wider-descendant type. Was a part of
2323             isAutosizingCluster().
2324
2325         (WebCore::TextAutosizer::isIndependentDescendant):
2326
2327             Separate check for the container to be autosized separately from the ancestor cluster.
2328             Checks for conditions independent of the aforementioned cluster.
2329
2330         (WebCore::TextAutosizer::isAutosizingCluster):
2331
2332             Handy method to check all separate conditions together.
2333
2334         (WebCore::TextAutosizer::processSubtree):
2335         (WebCore::TextAutosizer::processCluster):
2336         (WebCore::TextAutosizer::processContainer):
2337         (WebCore::TextAutosizer::clusterShouldBeAutosized):
2338         (WebCore::TextAutosizer::measureDescendantTextWidth):
2339         (WebCore::TextAutosizer::findFirstTextLeafNotInCluster):
2340
2341             The methods above were updated to use new functions/arguments.
2342
2343         * rendering/TextAutosizer.h:
2344
2345             Updated/added method definitions.
2346
2347 2013-02-08  Vsevolod Vlasov  <vsevik@chromium.org>
2348
2349         Web Inspector: Extension sever should use Workspace.projectForType() instead of Workspace.project()
2350         https://bugs.webkit.org/show_bug.cgi?id=109301
2351
2352         Reviewed by Alexander Pavlov.
2353
2354         * inspector/front-end/ExtensionServer.js:
2355         (WebInspector.ExtensionServer.prototype._onGetPageResources):
2356
2357 2013-02-04  Yury Semikhatsky  <yurys@chromium.org>
2358
2359         Web Inspector: simplify Memory.getDOMNodeCount implementation
2360         https://bugs.webkit.org/show_bug.cgi?id=108821
2361
2362         Reviewed by Alexander Pavlov.
2363
2364         Removed Memory.getDOMNodeCount command from the protocol. Memory.getDOMCounters
2365         should be used instead.
2366
2367         * inspector/Inspector.json:
2368         * inspector/InspectorMemoryAgent.cpp:
2369         * inspector/InspectorMemoryAgent.h:
2370         (InspectorMemoryAgent):
2371
2372 2013-02-08  Yury Semikhatsky  <yurys@chromium.org>
2373
2374         Web Inspector: refactor MemoryStatistics.js
2375         https://bugs.webkit.org/show_bug.cgi?id=109299
2376
2377         Reviewed by Vsevolod Vlasov.
2378
2379         Extracted functionality specific to DOM counter graphs drawing into
2380         separate methods on MemoryStatistics class.
2381         Introduced CounterUIBase base class for DOMCounterUI that contains
2382         functionality which can be shared with native memory graph.
2383
2384         * inspector/front-end/MemoryStatistics.js:
2385         (WebInspector.MemoryStatistics):
2386         (WebInspector.CounterUIBase):
2387         (WebInspector.CounterUIBase.prototype.updateCurrentValue):
2388         (WebInspector.CounterUIBase.prototype.clearCurrentValueAndMarker):
2389         (WebInspector.CounterUIBase.prototype.get visible):
2390         (WebInspector.DOMCounterUI):
2391         (WebInspector.DOMCounterUI.prototype.discardImageUnderMarker):
2392         (WebInspector.MemoryStatistics.prototype._onMouseOut):
2393         (WebInspector.MemoryStatistics.prototype._clearCurrentValueAndMarker):
2394         (WebInspector.MemoryStatistics.prototype._refreshCurrentValues):
2395         (WebInspector.MemoryStatistics.prototype._updateCurrentValue):
2396         (WebInspector.MemoryStatistics.prototype._highlightCurrentPositionOnGraphs):
2397         (WebInspector.MemoryStatistics.prototype._restoreImageUnderMarker):
2398         (WebInspector.MemoryStatistics.prototype._saveImageUnderMarker):
2399         (WebInspector.MemoryStatistics.prototype._drawMarker):
2400         (WebInspector.MemoryStatistics.prototype._clear):
2401         (WebInspector.MemoryStatistics.prototype._discardImageUnderMarker):
2402
2403 2013-02-08  Mike West  <mkwst@chromium.org>
2404
2405         Add a new IGNORE_EXCEPTION helper to ignore ExceptionCodes when they are expected but uninteresting
2406         https://bugs.webkit.org/show_bug.cgi?id=108771
2407
2408         Reviewed by Eric Seidel.
2409
2410         In cases where the ExceptionCode passed into a function is completely
2411         ignored, this patch replaces it with a new IGNORE_EXCEPTION macro. This
2412         makes our expectations about possible exceptions (or lack thereof)
2413         explicit, rather than relying on implicit assumptions about whether a
2414         variable is intentionally uninitialized or not. It also removes
2415         knowledge about the internals of ExceptionCodes (that they're currently
2416         ints, for instance) from code that shouldn't care, which will help with
2417         future refactorings.
2418
2419         The implementation is entirely based upon ASSERT_NO_EXCEPTION, and
2420         shouldn't have any visible effect on the web. As long as all the
2421         current tests pass, we're good.
2422
2423         * Modules/indexeddb/IDBRequest.cpp:
2424         (WebCore::IDBRequest::dispatchEvent):
2425         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
2426         * Modules/indexeddb/IDBTransaction.cpp:
2427         (WebCore::IDBTransaction::stop):
2428         * Modules/websockets/WebSocketChannel.cpp:
2429         (WebCore::WebSocketChannel::processBuffer):
2430         * dom/Document.cpp:
2431         (WebCore::Document::processHttpEquiv):
2432         * dom/ExceptionCodePlaceholder.h:
2433         (WebCore):
2434         * dom/Node.cpp:
2435         (WebCore::Node::normalize):
2436         * dom/Text.cpp:
2437         (WebCore::Text::replaceWholeText):
2438         * editing/AlternativeTextController.cpp:
2439         (WebCore::AlternativeTextController::insertDictatedText):
2440         * editing/AppendNodeCommand.cpp:
2441         (WebCore::AppendNodeCommand::doApply):
2442         (WebCore::AppendNodeCommand::doUnapply):
2443         * editing/CompositeEditCommand.cpp:
2444         (WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt):
2445         * editing/DeleteFromTextNodeCommand.cpp:
2446         (WebCore::DeleteFromTextNodeCommand::doUnapply):
2447         * editing/Editor.cpp:
2448         (WebCore::dispatchEditableContentChangedEvents):
2449         (WebCore::Editor::applyEditingStyleToElement):
2450         * editing/EditorCommand.cpp:
2451         (WebCore::executeFormatBlock):
2452         * editing/FormatBlockCommand.cpp:
2453         (WebCore::FormatBlockCommand::elementForFormatBlockCommand):
2454         * editing/InsertIntoTextNodeCommand.cpp:
2455         (WebCore::InsertIntoTextNodeCommand::doApply):
2456         (WebCore::InsertIntoTextNodeCommand::doUnapply):
2457         * editing/InsertListCommand.cpp:
2458         (WebCore::InsertListCommand::doApplyForSingleParagraph):
2459         * editing/InsertNodeBeforeCommand.cpp:
2460         (WebCore::InsertNodeBeforeCommand::doApply):
2461         (WebCore::InsertNodeBeforeCommand::doUnapply):
2462         * editing/RemoveCSSPropertyCommand.cpp:
2463         (WebCore::RemoveCSSPropertyCommand::doApply):
2464         (WebCore::RemoveCSSPropertyCommand::doUnapply):
2465         * editing/RemoveNodeCommand.cpp:
2466         (WebCore::RemoveNodeCommand::doApply):
2467         (WebCore::RemoveNodeCommand::doUnapply):
2468         * editing/ReplaceSelectionCommand.cpp:
2469         (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
2470         * editing/TextIterator.cpp:
2471         (WebCore::TextIterator::getLocationAndLengthFromRange):
2472         * editing/WrapContentsInDummySpanCommand.cpp:
2473         (WebCore::WrapContentsInDummySpanCommand::executeApply):
2474         (WebCore::WrapContentsInDummySpanCommand::doUnapply):
2475         * editing/htmlediting.cpp:
2476         (WebCore::comparePositions):
2477         * editing/markup.cpp:
2478         (WebCore::highestAncestorToWrapMarkup):
2479         * html/FTPDirectoryDocument.cpp:
2480         (WebCore::FTPDirectoryDocumentParser::appendEntry):
2481         (WebCore::FTPDirectoryDocumentParser::createTDForFilename):
2482         (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
2483         (WebCore::FTPDirectoryDocumentParser::createBasicDocument):
2484         * html/HTMLMediaElement.cpp:
2485         (WebCore::HTMLMediaElement::rewind):
2486         (WebCore::HTMLMediaElement::returnToRealtime):
2487         (WebCore::HTMLMediaElement::playInternal):
2488         (WebCore::HTMLMediaElement::percentLoaded):
2489         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
2490         (WebCore::HTMLMediaElement::mediaPlayerDurationChanged):
2491         (WebCore::HTMLMediaElement::applyMediaFragmentURI):
2492         * html/HTMLOutputElement.cpp:
2493         (WebCore::HTMLOutputElement::setTextContentInternal):
2494         * html/HTMLSelectElement.cpp:
2495         (WebCore::HTMLSelectElement::remove):
2496         * html/HTMLTableElement.cpp:
2497         (WebCore::HTMLTableElement::createTHead):
2498         (WebCore::HTMLTableElement::deleteTHead):
2499         (WebCore::HTMLTableElement::createTFoot):
2500         (WebCore::HTMLTableElement::deleteTFoot):
2501         (WebCore::HTMLTableElement::createCaption):
2502         (WebCore::HTMLTableElement::deleteCaption):
2503         * html/HTMLTextAreaElement.cpp:
2504         (WebCore::HTMLTextAreaElement::setDefaultValue):
2505         * html/ImageDocument.cpp:
2506         (WebCore::ImageDocument::createDocumentStructure):
2507         * html/InputType.cpp:
2508         (WebCore::InputType::stepUpFromRenderer):
2509         * html/MediaController.cpp:
2510         (MediaController::bringElementUpToSpeed):
2511         (MediaController::asyncEventTimerFired):
2512         * html/MediaDocument.cpp:
2513         (WebCore::MediaDocumentParser::createDocumentStructure):
2514         (WebCore::MediaDocument::replaceMediaElementTimerFired):
2515         * html/PluginDocument.cpp:
2516         (WebCore::PluginDocumentParser::createDocumentStructure):
2517         * html/RangeInputType.cpp:
2518         (WebCore::RangeInputType::handleKeydownEvent):
2519         * html/TimeRanges.cpp:
2520         (TimeRanges::contain):
2521         (TimeRanges::nearest):
2522         * html/canvas/CanvasRenderingContext2D.cpp:
2523         (WebCore::CanvasRenderingContext2D::drawImageFromRect):
2524         * html/shadow/MediaControlElementTypes.cpp:
2525         (WebCore::MediaControlSeekButtonElement::seekTimerFired):
2526         * html/shadow/MediaControlElements.cpp:
2527         (WebCore::MediaControlPanelElement::setPosition):
2528         (WebCore::MediaControlPanelElement::resetPosition):
2529         (WebCore::MediaControlStatusDisplayElement::update):
2530         (WebCore::MediaControlRewindButtonElement::defaultEventHandler):
2531         (WebCore::MediaControlTimelineElement::defaultEventHandler):
2532         * html/shadow/MediaControls.cpp:
2533         (WebCore::MediaControls::updateCurrentTimeDisplay):
2534         (WebCore::MediaControls::createTextTrackDisplay):
2535         * html/shadow/MediaControlsApple.cpp:
2536         (WebCore::MediaControlsApple::updateCurrentTimeDisplay):
2537         * html/shadow/MediaControlsBlackBerry.cpp:
2538         (WebCore::MediaControlEmbeddedPanelElement::setPosition):
2539         (WebCore::MediaControlEmbeddedPanelElement::resetPosition):
2540         (WebCore::MediaControlFullscreenTimelineElement::defaultEventHandler):
2541         (WebCore::MediaControlsBlackBerry::updateCurrentTimeDisplay):
2542         * html/shadow/MediaControlsChromium.cpp:
2543         (WebCore::MediaControlsChromium::updateCurrentTimeDisplay):
2544         * html/track/InbandTextTrack.cpp:
2545         (WebCore::InbandTextTrack::addGenericCue):
2546         * inspector/InspectorCSSAgent.cpp:
2547         (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
2548         * inspector/InspectorHistory.cpp:
2549         (WebCore::InspectorHistory::markUndoableState):
2550         * inspector/InspectorResourceAgent.cpp:
2551         (WebCore::InspectorResourceAgent::replayXHR):
2552         * page/ContextMenuController.cpp:
2553         (WebCore::ContextMenuController::contextMenuItemSelected):
2554         * page/DOMWindow.cpp:
2555         (WebCore::didAddStorageEventListener):
2556         * page/DragController.cpp:
2557         (WebCore::documentFragmentFromDragData):
2558         * page/EventHandler.cpp:
2559         (WebCore::EventHandler::dispatchDragEvent):
2560         (WebCore::EventHandler::keyEvent):
2561         (WebCore::EventHandler::handleTextInputEvent):
2562         * page/Page.cpp:
2563         (WebCore::Page::findStringMatchingRanges):
2564         * platform/efl/RenderThemeEfl.cpp:
2565         (WebCore::RenderThemeEfl::paintMediaSliderTrack):
2566         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
2567         (WebCore::MediaPlayerPrivate::percentLoaded):
2568         * platform/gtk/RenderThemeGtk.cpp:
2569         (WebCore::RenderThemeGtk::paintMediaSliderTrack):
2570         * platform/mac/PasteboardMac.mm:
2571         (WebCore::Pasteboard::getDataSelection):
2572         (WebCore::documentFragmentWithImageResource):
2573         (WebCore::Pasteboard::documentFragment):
2574         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
2575         (-[WebVideoFullscreenHUDWindowController setCurrentTime:]):
2576         (-[WebVideoFullscreenHUDWindowController setVolume:]):
2577         * platform/qt/RenderThemeQt.cpp:
2578         (WebCore::RenderThemeQt::paintMediaSliderTrack):
2579         * rendering/RenderNamedFlowThread.cpp:
2580         (WebCore::RenderNamedFlowThread::getRanges):
2581         * rendering/RenderThemeMac.mm:
2582         (WebCore::RenderThemeMac::paintMediaSliderTrack):
2583         * svg/SVGTRefElement.cpp:
2584         (WebCore::SVGTRefElement::detachTarget):
2585         * xml/XMLTreeViewer.cpp:
2586         (WebCore::XMLTreeViewer::transformDocumentToTreeView):
2587         * xml/parser/XMLDocumentParserLibxml2.cpp:
2588         (WebCore::XMLDocumentParser::endElementNs):
2589         * xml/parser/XMLDocumentParserQt.cpp:
2590         (WebCore::XMLDocumentParser::parseEndElement):
2591
2592 2013-02-08  Vsevolod Vlasov  <vsevik@chromium.org>
2593
2594         Web Inspector: Introduce workspace provider/project type, encapsulate uri creation in SimpleWorkspaceProvider.
2595         https://bugs.webkit.org/show_bug.cgi?id=109282
2596
2597         Reviewed by Alexander Pavlov.
2598
2599         SimpleWorkspaceProvider now fully takes care of creating uri based on project/workspace provider type.
2600         This is the first step on the way to project-per-domain mode for non file system project types.
2601         Workspace is now partly aware of the possibility that several projects with the same type exist.
2602         Drive-by: ScriptsPanel now uses FileMapping to show anchor location properly.
2603
2604         * inspector/front-end/DefaultScriptMapping.js:
2605         (WebInspector.DefaultScriptMapping):
2606         (WebInspector.DefaultScriptMapping.prototype.addScript):
2607         * inspector/front-end/ExtensionServer.js:
2608         (WebInspector.ExtensionServer.prototype._onGetPageResources):
2609         * inspector/front-end/FileMapping.js:
2610         (WebInspector.FileMapping.prototype.uriForURL):
2611         * inspector/front-end/FileSystemWorkspaceProvider.js:
2612         (WebInspector.FileSystemWorkspaceProvider.prototype.type):
2613         * inspector/front-end/JavaScriptSourceFrame.js:
2614         (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
2615         * inspector/front-end/LiveEditSupport.js:
2616         (WebInspector.LiveEditSupport):
2617         (WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
2618         * inspector/front-end/ScriptSnippetModel.js:
2619         (WebInspector.ScriptSnippetModel):
2620         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
2621         * inspector/front-end/ScriptsNavigator.js:
2622         (WebInspector.ScriptsNavigator.prototype._navigatorViewForUISourceCode):
2623         (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
2624         (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
2625         (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
2626         * inspector/front-end/ScriptsPanel.js:
2627         (WebInspector.ScriptsPanel.prototype._addUISourceCode):
2628         (WebInspector.ScriptsPanel.prototype._projectWillReset):
2629         (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
2630         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
2631         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
2632         * inspector/front-end/SimpleWorkspaceProvider.js:
2633         (WebInspector.SimpleWorkspaceProvider):
2634         (WebInspector.SimpleWorkspaceProvider.uriForURL):
2635         (WebInspector.SimpleWorkspaceProvider.prototype.type):
2636         (WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
2637         (WebInspector.SimpleWorkspaceProvider.prototype.addUniqueFileForURL):
2638         (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
2639         (WebInspector.SimpleWorkspaceProvider.prototype._uniqueURI):
2640         * inspector/front-end/Workspace.js:
2641         (WebInspector.WorkspaceProvider.prototype.type):
2642         (WebInspector.Project.prototype.type):
2643         (WebInspector.Project.prototype.isServiceProject):
2644         (WebInspector.Workspace.prototype.uiSourceCodeForOriginURL):
2645         (WebInspector.Workspace.prototype.uiSourceCodesForProjectType):
2646         (WebInspector.Workspace.prototype.projectsForType):
2647         * inspector/front-end/inspector.js:
2648
2649 2013-02-08  ChangSeok Oh  <shivamidow@gmail.com>
2650
2651         [GTK][AC] GraphicsLayerClutter doesn't need to recalculate its position after changing anchor position.
2652         https://bugs.webkit.org/show_bug.cgi?id=109226
2653
2654         Reviewed by Gustavo Noronha Silva.
2655
2656         Clutter has a different coordinate system from mac port's, so we don't need to
2657         recalulate GraphicsLayer position after changing its anchor position.
2658
2659         Covered by existing ac tests.
2660
2661         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
2662         (WebCore::GraphicsLayerClutter::updateGeometry):
2663
2664 2013-02-08  Mike West  <mkwst@chromium.org>
2665
2666         Migrate ExceptionCode ASSERTs in IDB to ASSERT_NO_EXCEPTION.
2667         https://bugs.webkit.org/show_bug.cgi?id=109266
2668
2669         Reviewed by Jochen Eisinger.
2670
2671         The pattern:
2672
2673             ExceptionCode ec = 0;
2674             methodThatGeneratesException(ec);
2675             ASSERT(!ec);
2676
2677         is more clearly and succinctly written as:
2678
2679             methodThatGeneratesException(ASSERT_NO_EXCEPTION);
2680
2681         This patch replaces the occurances of the former in IDB code that never
2682         touch 'ec' again with the latter. No change in behavior should result
2683         from this refactoring.
2684
2685         * Modules/indexeddb/IDBCursor.cpp:
2686         (WebCore::IDBCursor::advance):
2687         (WebCore::IDBCursor::continueFunction):
2688         (WebCore::IDBCursor::deleteFunction):
2689             These methods checked the value of the ExceptionCode without first
2690             initializing it to 0. Now the ExceptionCode is explicitly set to 0
2691             before doing potentially exception-generating work.
2692         (WebCore::IDBCursor::direction):
2693         * Modules/indexeddb/IDBObjectStore.cpp:
2694         (WebCore):
2695         * Modules/indexeddb/IDBTransaction.cpp:
2696         (WebCore::IDBTransaction::mode):
2697             Replace the above pattern with ASSERT_NO_EXCEPTION.
2698
2699 2013-02-08  Mike West  <mkwst@chromium.org>
2700
2701         Migrate ExceptionCode ASSERTs in SVG to ASSERT_NO_EXCEPTION.
2702         https://bugs.webkit.org/show_bug.cgi?id=109267
2703
2704         Reviewed by Jochen Eisinger.
2705
2706         The pattern:
2707
2708             ExceptionCode ec = 0;
2709             methodThatGeneratesException(ec);
2710             ASSERT(!ec);
2711
2712         is more clearly and succinctly written as:
2713
2714             methodThatGeneratesException(ASSERT_NO_EXCEPTION);
2715
2716         This patch replaces the occurances of the former in SVG code that never
2717         touch 'ec' again with the latter. No change in behavior should result
2718         from this refactoring.
2719
2720         * svg/SVGLength.cpp:
2721         (WebCore::SVGLength::SVGLength):
2722         (WebCore::SVGLength::setValue):
2723             This method checked the value of the ExceptionCode without first
2724             initializing it to 0. Now it initializes before doing potentially
2725             exception-generating work.
2726         * rendering/style/SVGRenderStyle.h:
2727         (WebCore::SVGRenderStyle::initialBaselineShiftValue):
2728         (WebCore::SVGRenderStyle::initialKerning):
2729         (WebCore::SVGRenderStyle::initialStrokeDashOffset):
2730         (WebCore::SVGRenderStyle::initialStrokeWidth):
2731         * svg/SVGAnimatedLength.cpp:
2732         (WebCore::sharedSVGLength):
2733         (WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
2734         (WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
2735         * svg/SVGAnimatedLengthList.cpp:
2736         (WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
2737         (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
2738         * svg/SVGTextContentElement.cpp:
2739         (WebCore::SVGTextContentElement::textLengthAnimated):
2740         * svg/animation/SVGSMILElement.cpp:
2741         (WebCore::constructQualifiedName):
2742             Replace the above pattern with ASSERT_NO_EXCEPTION.
2743
2744 2013-02-08  Vsevolod Vlasov  <vsevik@chromium.org>
2745
2746         Web Inspector: Replace workspace with project in UISourceCode constructor.
2747         https://bugs.webkit.org/show_bug.cgi?id=109256
2748
2749         Reviewed by Alexander Pavlov.
2750
2751         Replaced workspace with project in UISourceCode constructor since every UISourceCode
2752         operation is delegated to project anyway.
2753
2754         * inspector/front-end/UISourceCode.js:
2755         (WebInspector.UISourceCode):
2756         (WebInspector.UISourceCode.prototype.project):
2757         (WebInspector.UISourceCode.prototype.requestContent):
2758         (WebInspector.UISourceCode.prototype.requestOriginalContent):
2759         (WebInspector.UISourceCode.prototype._commitContent):
2760         (WebInspector.UISourceCode.prototype.searchInContent):
2761         * inspector/front-end/Workspace.js:
2762         (WebInspector.Project.prototype._fileAdded):
2763         (WebInspector.Project.prototype.requestFileContent):
2764         (WebInspector.Project.prototype.setFileContent):
2765         (WebInspector.Project.prototype.searchInFileContent):
2766
2767 2013-02-08  Patrick Gansterer  <paroga@webkit.org>
2768
2769         Build fix for Windows after r141981.
2770
2771         * platform/network/win/ResourceHandleWin.cpp:
2772         (WebCore::ResourceHandle::loadResourceSynchronously):
2773
2774 2013-02-08  Sheriff Bot  <webkit.review.bot@gmail.com>
2775
2776         Unreviewed, rolling out r141695 and r141697.
2777         http://trac.webkit.org/changeset/141695
2778         http://trac.webkit.org/changeset/141697
2779         https://bugs.webkit.org/show_bug.cgi?id=109279
2780
2781         broke on-disk buffering for http(s) media (Requested by philn
2782         on #webkit).
2783
2784         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2785         (WebCore::MediaPlayerPrivateGStreamer::load):
2786         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
2787         (MediaPlayerPrivateGStreamer):
2788         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2789         (webKitWebSrcGetProtocols):
2790         (webKitWebSrcSetUri):
2791
2792 2013-02-08  Dan Carney  <dcarney@google.com>
2793
2794         [v8] isolate parameter added to all v8::peristent calls
2795         https://bugs.webkit.org/show_bug.cgi?id=109268
2796
2797         Reviewed by Kentaro Hara.
2798
2799         No new tests. No change in functionality.
2800
2801         * bindings/scripts/CodeGeneratorV8.pm:
2802         (GenerateDomainSafeFunctionGetter):
2803         (GenerateNamedConstructorCallback):
2804         (GenerateImplementation):
2805         * bindings/scripts/test/V8/V8Float64Array.cpp:
2806         (WebCore::V8Float64Array::GetRawTemplate):
2807         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2808         (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
2809         (WebCore::V8TestActiveDOMObject::GetRawTemplate):
2810         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2811         (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
2812         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2813         (WebCore::V8TestEventConstructor::GetRawTemplate):
2814         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2815         (WebCore::V8TestEventTarget::GetRawTemplate):
2816         * bindings/scripts/test/V8/V8TestException.cpp:
2817         (WebCore::V8TestException::GetRawTemplate):
2818         * bindings/scripts/test/V8/V8TestInterface.cpp:
2819         (WebCore::V8TestInterface::GetRawTemplate):
2820         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2821         (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
2822         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2823         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
2824         (WebCore::V8TestNamedConstructor::GetRawTemplate):
2825         * bindings/scripts/test/V8/V8TestNode.cpp:
2826         (WebCore::V8TestNode::GetRawTemplate):
2827         * bindings/scripts/test/V8/V8TestObj.cpp:
2828         (WebCore::V8TestObj::GetRawTemplate):
2829         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
2830         (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
2831         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2832         (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
2833         * bindings/v8/DOMWrapperMap.h:
2834         (WebCore::DOMWrapperMap::clear):
2835         * bindings/v8/DOMWrapperWorld.cpp:
2836         (WebCore::isolatedWorldWeakCallback):
2837         (WebCore::DOMWrapperWorld::makeContextWeak):
2838         * bindings/v8/NPV8Object.cpp:
2839         (WebCore::freeV8NPObject):
2840         (WebCore::npCreateV8ScriptObject):
2841         * bindings/v8/ScheduledAction.cpp:
2842         (WebCore::ScheduledAction::ScheduledAction):
2843         (WebCore::ScheduledAction::~ScheduledAction):
2844         * bindings/v8/ScopedPersistent.h:
2845         (WebCore::ScopedPersistent::ScopedPersistent):
2846         (WebCore::ScopedPersistent::set):
2847         (WebCore::ScopedPersistent::clear):
2848         * bindings/v8/ScriptWrappable.h:
2849         (WebCore::ScriptWrappable::setWrapper):
2850         (WebCore::ScriptWrappable::disposeWrapper):
2851         (WebCore::ScriptWrappable::weakCallback):
2852         * bindings/v8/V8Binding.cpp:
2853         (WebCore::createRawTemplate):
2854         * bindings/v8/V8Binding.h:
2855         (WebCore):
2856         * bindings/v8/V8GCController.cpp:
2857         (WebCore::gcTree):
2858         (WebCore::V8GCController::gcPrologue):
2859         (WebCore::V8GCController::minorGCPrologue):
2860         * bindings/v8/V8GCController.h:
2861         (V8GCController):
2862         * bindings/v8/V8HiddenPropertyName.cpp:
2863         (WebCore::V8HiddenPropertyName::createString):
2864         * bindings/v8/V8LazyEventListener.cpp:
2865         (WebCore::V8LazyEventListener::prepareListenerObject):
2866         * bindings/v8/V8NPObject.cpp:
2867         (WebCore::V8NPTemplateMap::dispose):
2868         (WebCore::npObjectGetProperty):
2869         (WebCore::createV8ObjectForNPObject):
2870         * bindings/v8/V8PerContextData.cpp:
2871         (WebCore::V8PerContextData::dispose):
2872         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
2873         (WebCore::V8PerContextData::constructorForTypeSlowCase):
2874         * bindings/v8/V8ValueCache.cpp:
2875         (WebCore::makeExternalString):
2876         * bindings/v8/WrapperTypeInfo.h:
2877         (WebCore::WrapperConfiguration::configureWrapper):
2878         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
2879         (WebCore::V8HTMLDocument::wrapInShadowObject):
2880         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2881         (WebCore::V8HTMLImageElementConstructor::GetTemplate):
2882         * bindings/v8/custom/V8InjectedScriptManager.cpp:
2883         (WebCore::WeakReferenceCallback):
2884         (WebCore::createInjectedScriptHostV8Wrapper):
2885         * bindings/v8/custom/V8LocationCustom.cpp:
2886         (WebCore::V8Location::reloadAccessorGetter):
2887         (WebCore::V8Location::replaceAccessorGetter):
2888         (WebCore::V8Location::assignAccessorGetter):
2889
2890 2013-02-08  Kent Tamura  <tkent@chromium.org>
2891
2892         Adjust usage of ENABLE flags to enable whole content
2893         https://bugs.webkit.org/show_bug.cgi?id=109270
2894
2895         Reviewed by Eric Seidel.
2896
2897         Our common usage of ENABLE flags to enable whole content of files is:
2898
2899         For .cpp files:
2900           #include "config.h"
2901           #if ENABLE(FOOBAR)
2902           #include "FooBar.h"
2903
2904         For .h files:
2905           #ifndef FooBar_h
2906           #define FooBar_h
2907           #if ENABLE(FOOBAR)
2908
2909         Fix files which have uncommon usage, and fix CodeGeneratorV8.pm so that
2910         it generates the common pattern. Note that CodeGeneratorJS.pm already
2911         generates code in this order.
2912
2913         * bindings/scripts/CodeGeneratorV8.pm:
2914         (GenerateHeaderContentHeader):
2915         (GenerateImplementationContentHeader):
2916         * bindings/scripts/test/V8/V8TestCallback.cpp:
2917         * bindings/scripts/test/V8/V8TestCallback.h:
2918         * bindings/scripts/test/V8/V8TestInterface.cpp:
2919         * bindings/scripts/test/V8/V8TestInterface.h:
2920         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2921         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2922         * html/BaseMultipleFieldsDateAndTimeInputType.h:
2923         * html/ColorInputType.cpp:
2924         * html/ColorInputType.h:
2925         * html/DateInputType.cpp:
2926         * html/DateTimeInputType.cpp:
2927         * html/DateTimeInputType.h:
2928         * html/DateTimeLocalInputType.cpp:
2929         * html/HTMLAudioElement.cpp:
2930         * html/HTMLAudioElement.h:
2931         * html/HTMLDataListElement.cpp:
2932         * html/HTMLDialogElement.cpp:
2933         * html/HTMLDialogElement.h:
2934         * html/HTMLMediaElement.cpp:
2935         * html/HTMLMediaElement.h:
2936         * html/HTMLMeterElement.cpp:
2937         * html/HTMLProgressElement.cpp:
2938         * html/HTMLSourceElement.cpp:
2939         * html/HTMLSourceElement.h:
2940         * html/HTMLTrackElement.cpp:
2941         * html/HTMLTrackElement.h:
2942         * html/HTMLVideoElement.cpp:
2943         * html/HTMLVideoElement.h:
2944         * html/MonthInputType.cpp:
2945         * html/TimeInputType.cpp:
2946         * html/WeekInputType.cpp:
2947         * html/shadow/DateTimeFieldElement.h:
2948         * html/shadow/DetailsMarkerControl.cpp:
2949         * html/shadow/MeterShadowElement.cpp:
2950         * html/shadow/ProgressShadowElement.cpp:
2951         * rendering/RenderDetailsMarker.cpp:
2952         * rendering/RenderInputSpeech.cpp:
2953         * rendering/RenderMeter.cpp:
2954         * rendering/RenderProgress.cpp:
2955
2956 2013-02-08  Mike West  <mkwst@chromium.org>
2957
2958         Replace ExceptionCode assertions with ASSERT_NO_EXCEPTION macro.
2959         https://bugs.webkit.org/show_bug.cgi?id=109044
2960
2961         Reviewed by Darin Adler.
2962
2963         The pattern:
2964
2965             ExceptionCode ec = 0;
2966             methodThatGeneratesException(ec);
2967             ASSERT(!ec);
2968
2969         is more clearly and succinctly written as:
2970
2971             methodThatGeneratesException(ASSERT_NO_EXCEPTION);
2972
2973         This patch replaces the occurances of the former that never touch 'ec'
2974         again with the latter. It does the same for 'ASSERT(ec == 0);' (and, as
2975         a drive-by, replaces 'ASSERT(ec == 0)' with 'ASSERT(!ec)' in places
2976         where it does indeed matter that 'ec' get set properly.
2977
2978         No change in behavior should result from this refactoring.
2979
2980         * dom/ContainerNode.cpp:
2981         (WebCore::ContainerNode::takeAllChildrenFrom):
2982         * dom/Document.cpp:
2983         (WebCore::Document::setTitle):
2984         * dom/MessagePort.cpp:
2985         (WebCore::MessagePort::dispatchMessages):
2986         (WebCore::MessagePort::disentanglePorts):
2987         * editing/DeleteButtonController.cpp:
2988         (WebCore::enclosingDeletableElement):
2989         (WebCore::DeleteButtonController::createDeletionUI):
2990             Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
2991         (WebCore::DeleteButtonController::show):
2992             Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
2993         * editing/EditorCommand.cpp:
2994         (WebCore::unionDOMRanges):
2995         * editing/ReplaceNodeWithSpanCommand.cpp:
2996         (WebCore::swapInNodePreservingAttributesAndChildren):
2997         * editing/ReplaceSelectionCommand.cpp:
2998         (WebCore::ReplacementFragment::ReplacementFragment):
2999         (WebCore::ReplacementFragment::removeNode):
3000         (WebCore::ReplacementFragment::insertNodeBefore):
3001         (WebCore::ReplacementFragment::insertFragmentForTestRendering):
3002         (WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment):
3003         (WebCore::ReplaceSelectionCommand::insertAsListItems):
3004         * editing/SplitTextNodeCommand.cpp:
3005         (WebCore::SplitTextNodeCommand::doUnapply):
3006         * editing/TextIterator.cpp:
3007         (WebCore::CharacterIterator::range):
3008         (WebCore::BackwardsCharacterIterator::range):
3009         (WebCore::TextIterator::rangeFromLocationAndLength):
3010         (WebCore::collapsedToBoundary):
3011         * editing/htmlediting.cpp:
3012         (WebCore::createTabSpanElement):
3013         * editing/mac/EditorMac.mm:
3014         (WebCore::Editor::fontForSelection):
3015         (WebCore::Editor::fontAttributesForSelectionStart):
3016         * editing/markup.cpp:
3017         (WebCore::createMarkup):
3018         (WebCore::trimFragment):
3019         (WebCore::createFragmentFromMarkupWithContext):
3020         (WebCore::fillContainerFromString):
3021         (WebCore::createFragmentFromText):
3022         (WebCore::createFragmentFromNodes):
3023         * html/ColorInputType.cpp:
3024         (WebCore::ColorInputType::createShadowSubtree):
3025             Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
3026         * html/HTMLOptionsCollection.cpp:
3027         (WebCore::HTMLOptionsCollection::add):
3028             Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
3029         * html/HTMLTextAreaElement.cpp:
3030         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
3031         * html/HTMLTextFormControlElement.cpp:
3032         (WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
3033         (WebCore::HTMLTextFormControlElement::setInnerTextValue):
3034         * html/TextFieldInputType.cpp:
3035         (WebCore::TextFieldInputType::updatePlaceholderText):
3036         * html/ValidationMessage.cpp:
3037         (WebCore::ValidationMessage::buildBubbleTree):
3038         * html/shadow/MediaControlElementTypes.cpp:
3039         (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
3040         * inspector/InspectorPageAgent.cpp:
3041         (WebCore::InspectorPageAgent::getCookies):
3042         * inspector/InspectorStyleSheet.cpp:
3043         (WebCore::InspectorStyleSheet::addRule):
3044         * loader/appcache/ApplicationCacheHost.cpp:
3045         (WebCore::ApplicationCacheHost::dispatchDOMEvent):
3046         * page/DOMSelection.cpp:
3047         (WebCore::DOMSelection::deleteFromDocument):
3048         * page/DragController.cpp:
3049         (WebCore::prepareClipboardForImageDrag):
3050         * rendering/RenderTextControl.cpp:
3051         (WebCore::RenderTextControl::visiblePositionForIndex):
3052             Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
3053
3054 2013-02-08  Alexei Filippov  <alph@chromium.org>
3055
3056         Web Inspector: disable profile type switching while profile in progress
3057         https://bugs.webkit.org/show_bug.cgi?id=109178
3058
3059         Reviewed by Yury Semikhatsky.
3060
3061         Disables profile type selection controls when a profiling session
3062         is in progress.
3063
3064         * inspector/front-end/HeapSnapshotView.js:
3065         (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
3066         * inspector/front-end/ProfileLauncherView.js:
3067         (WebInspector.ProfileLauncherView.prototype._updateControls):
3068         * inspector/front-end/ProfilesPanel.js:
3069         (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
3070
3071 2013-02-08  Ilya Tikhonovsky  <loislo@chromium.org>
3072
3073         Web Inspector: Native Memory Instrumentation: adjust chunk transfer size for better speed.
3074         https://bugs.webkit.org/show_bug.cgi?id=109263
3075
3076         Reviewed by Yury Semikhatsky.
3077
3078         The chunk size is changed from 100 to 10000.
3079         addString counts only first 256 symbols of the string.o
3080
3081         * inspector/HeapGraphSerializer.cpp:
3082         (WebCore::HeapGraphSerializer::pushUpdateIfNeeded):
3083         (WebCore::HeapGraphSerializer::addString):
3084         * inspector/front-end/NativeMemorySnapshotView.js:
3085
3086 2013-02-08  Kentaro Hara  <haraken@chromium.org>
3087
3088         Support a relatedTarget attribute on focus/blur events
3089         https://bugs.webkit.org/show_bug.cgi?id=109176
3090
3091         Reviewed by Ojan Vafai.
3092
3093         In bug 76216, we supported a relatedTarget attribute on
3094         focusin/focusout events. We should also support it on focus/blur events.
3095
3096         See http://lists.w3.org/Archives/Public/www-dom/2012OctDec/0061.html
3097         for the www-dom discussion.
3098
3099         Test: fast/dom/shadow/shadow-boundary-events.html
3100               fast/events/related-target-focusevent.html
3101
3102         * dom/EventDispatchMediator.cpp:
3103         (WebCore::FocusEventDispatchMediator::create):
3104         (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
3105         (WebCore::BlurEventDispatchMediator::create):
3106         (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
3107         * dom/EventDispatchMediator.h:
3108         (FocusEventDispatchMediator):
3109         (BlurEventDispatchMediator):
3110         * dom/Node.cpp:
3111         (WebCore::Node::dispatchFocusInEvent):
3112         (WebCore::Node::dispatchFocusOutEvent):
3113         (WebCore::Node::dispatchFocusEvent):
3114         (WebCore::Node::dispatchBlurEvent):
3115
3116 2013-02-07  Yury Semikhatsky  <yurys@chromium.org>
3117
3118         Web Inspector: reduce number of native memory instrumentation categories
3119         https://bugs.webkit.org/show_bug.cgi?id=109146
3120
3121         Reviewed by Pavel Feldman.
3122
3123         Merged some of memory instrumentation categories.
3124
3125         * dom/WebCoreMemoryInstrumentation.cpp:
3126         (WebCore):
3127         * inspector/front-end/NativeMemorySnapshotView.js:
3128         (WebInspector.MemoryBlockViewProperties._initialize):
3129         * platform/PlatformMemoryInstrumentation.cpp:
3130         (WebCore):
3131
3132 2013-02-07  Mike West  <mkwst@chromium.org>
3133
3134         <iframe seamless> should avoid vertical scrollbars during the initial layout passes.
3135         https://bugs.webkit.org/show_bug.cgi?id=87707
3136
3137         Reviewed by Eric Seidel.
3138
3139         Seamless documents currently render incorrectly when their content fills
3140         the width of the container into which they're placed. Because FrameView
3141         assumes that the container's size is properly set before the first pass
3142         of layout, vertical scrollbars are incorrectly forced onto seamless
3143         content, because seamless sets the container's height to 0 before
3144         handing it off to FrameView for layout. The scrollbars make the
3145         available width for the seamless document ~15px smaller than it should
3146         be, resulting in content getting bumped to the next line.
3147
3148         This patch special-cases FrameView::calculateScrollbarModesForLayout in
3149         order to force scrollbars off for seamless documents with a full visible
3150         height of 0px. Once the layout pass has grabbed the content height and
3151         applied it to the visible height, scrollbars will again be applicable.
3152
3153         The change should be covered by rebaselines for the newly-passing
3154         results in fast/frame/seamless-{float,inline}.html
3155
3156         * page/FrameView.cpp:
3157         (WebCore::FrameView::calculateScrollbarModesForLayout):
3158             If we're rendering a seamless document, and the full visible height
3159             is 0, and the vertical scrollbar would otherwise be ScrollbarAuto,
3160             then force ScrollbarAlwaysOff.
3161
3162 2013-02-07  Kent Tamura  <tkent@chromium.org>
3163
3164         document.activeElement should not return a non-focusable element
3165         https://bugs.webkit.org/show_bug.cgi?id=86707
3166
3167         Reviewed by Hajime Morita.
3168
3169         This is based on a patch by Arpita Bahuguna.
3170
3171         Test: fast/dom/HTMLDocument/set-focus-on-valid-element.html
3172
3173         * dom/Document.cpp:
3174         (WebCore::Document::setFocusedNode):
3175         Added check for verifying that the node to be focused is
3176         focusable. However, this check should be skipped for HTMLPlugInElement
3177         because it has special behavior.
3178
3179 2013-02-07  Vladislav Kaznacheev  <kaznacheev@chromium.org>
3180
3181         Web Inspector: Fix front-end compilation warnings related to WebInspector.SidebarPane
3182         https://bugs.webkit.org/show_bug.cgi?id=109259
3183
3184         Reviewed by Vsevolod Vlasov.
3185
3186         * inspector/front-end/DOMBreakpointsSidebarPane.js:
3187         (WebInspector.DOMBreakpointsSidebarPane.Proxy):
3188         * inspector/front-end/SidebarPane.js:
3189
3190 2013-02-07  Kentaro Hara  <haraken@chromium.org>
3191
3192         [V8] enum V8HiddenPropertyCreationType is not used
3193         https://bugs.webkit.org/show_bug.cgi?id=109250
3194
3195         Reviewed by Adam Barth.
3196
3197         V8HiddenPropertyCreationType is always NewSymbol. We can remove the enum.
3198
3199         No tests. No change in behavior.
3200
3201         * bindings/v8/V8HiddenPropertyName.cpp:
3202         (WebCore::hiddenReferenceName):
3203         * bindings/v8/V8HiddenPropertyName.h:
3204         (WebCore):
3205
3206 2013-02-07  Sheriff Bot  <webkit.review.bot@gmail.com>
3207
3208         Unreviewed, rolling out r142212.
3209         http://trac.webkit.org/changeset/142212
3210         https://bugs.webkit.org/show_bug.cgi?id=109255
3211
3212         Causes ASSERT(!m_installed) on launch (Requested by smfr on
3213         #webkit).
3214
3215         * WebCore.exp.in:
3216         * platform/MemoryPressureHandler.cpp:
3217         (WebCore):
3218         (WebCore::MemoryPressureHandler::respondToMemoryPressure):
3219         * platform/MemoryPressureHandler.h:
3220         (MemoryPressureHandler):
3221         * platform/mac/MemoryPressureHandlerMac.mm:
3222         (WebCore::MemoryPressureHandler::respondToMemoryPressure):
3223
3224 2013-02-07  Hanyee Kim  <choco@company100.net>
3225
3226         NamedFlowCollection should be a ContextDestructionObserver
3227         https://bugs.webkit.org/show_bug.cgi?id=99239
3228
3229         Reviewed by Adam Barth
3230
3231         This patch removes the raw pointer of Document in NamedFlowCollection.
3232         It could be replaced with ContextDestructionObserver.
3233         ContextDestructionObserver has the pointer and clears the pointer
3234         automatically when the document is destroyed. 
3235
3236         * dom/Document.cpp:
3237         (WebCore::Document::~Document):
3238         * dom/NamedFlowCollection.cpp:
3239         (WebCore::NamedFlowCollection::NamedFlowCollection):
3240         (WebCore::NamedFlowCollection::ensureFlowWithName):
3241         (WebCore::NamedFlowCollection::discardNamedFlow):
3242         (WebCore::NamedFlowCollection::document):
3243         (WebCore):
3244         * dom/NamedFlowCollection.h:
3245         (NamedFlowCollection):
3246
3247 2013-02-07  Dean Jackson  <dino@apple.com>
3248
3249         Followup review suggestions from Alexey Proskuryakov on
3250         https://bugs.webkit.org/show_bug.cgi?id=109215
3251
3252         Don't provide a charset on embedded SVG, especially
3253         with incorrect syntax :)
3254
3255         * css/mediaControlsQuickTime.css:
3256         (video::-webkit-media-controls-toggle-closed-captions-button):
3257         (video::-webkit-media-controls-closed-captions-track-list li.selected):
3258         (video::-webkit-media-controls-closed-captions-track-list li.selected:hover):
3259
3260 2013-02-07  Seulgi Kim  <seulgikim@company100.net>
3261
3262         [Gtk] RunLoop::run shuold run current thread's run loop.
3263         https://bugs.webkit.org/show_bug.cgi?id=107887
3264
3265         Reviewed by Martin Robinson.
3266
3267         Currently, RunLoop in Gtk can use just main thread's event loop.
3268         But the other ports are implemented to use RunLoop in sub threads.
3269
3270         This patch makes RunLoop constructor create new context, not use default
3271         context.
3272         But in the main thread still uses default context to use main event loop
3273         since there is some codes using glib directly (e.g. in
3274         LayerTreeHostGtk::scheduleLayerFlush).
3275
3276         No new tests. There is no case that uses RunLoop in off the main thread
3277         yet.
3278
3279         * platform/gtk/RunLoopGtk.cpp:
3280         (WebCore::RunLoop::RunLoop):
3281         (WebCore::RunLoop::run):
3282
3283 2013-02-07  Kentaro Hara  <haraken@chromium.org>
3284
3285         [V8] Move V8DOMWrapper::setNamedHiddenReference() to V8HiddenPropertyName.h
3286         https://bugs.webkit.org/show_bug.cgi?id=109186
3287
3288         Reviewed by Adam Barth.
3289
3290         V8HiddenPropertyName.h is a right place for setNamedHiddenReference().
3291
3292         No tests. No change in behavior.
3293
3294         * bindings/scripts/CodeGeneratorV8.pm:
3295         (GenerateNormalAttrGetter):
3296         * bindings/scripts/test/V8/V8TestObj.cpp:
3297         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
3298         * bindings/v8/V8DOMWrapper.cpp:
3299         * bindings/v8/V8DOMWrapper.h:
3300         (V8DOMWrapper):
3301         * bindings/v8/V8HiddenPropertyName.cpp:
3302         (WebCore::V8HiddenPropertyName::hiddenReferenceName):
3303         (WebCore::V8HiddenPropertyName::setNamedHiddenReference):
3304         (WebCore):
3305         * bindings/v8/V8HiddenPropertyName.h:
3306         (V8HiddenPropertyName):
3307         (WebCore::V8HiddenPropertyName::V8HiddenPropertyName):
3308         * bindings/v8/custom/V8MessageChannelCustom.cpp:
3309         (WebCore::V8MessageChannel::constructorCallbackCustom):
3310         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
3311         (WebCore::toV8Object):
3312
3313 2013-02-07  Elliott Sprehn  <esprehn@chromium.org>
3314
3315         getComputedStyle() doesn't report intermediate values during a transition of a pseudo element
3316         https://bugs.webkit.org/show_bug.cgi?id=106535
3317
3318         Reviewed by Ojan Vafai.
3319
3320         Element::computedStyle and CSSComputedStyleDeclaration::getPropertyCSSValue
3321         should use the PseudoElement and it's renderer if they exist so that
3322         querying the computed style while an animation is running returns
3323         the intermediate values.
3324
3325         No new tests, updated existing tests.
3326
3327         * css/CSSComputedStyleDeclaration.cpp:
3328         (WebCore::CSSComputedStyleDeclaration::styledNode): Added, returns either the PseudoElement or the Node.
3329         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Updated to use styledNode.
3330         * css/CSSComputedStyleDeclaration.h:
3331         (CSSComputedStyleDeclaration):
3332         * dom/Element.cpp:
3333         (WebCore::Element::computedStyle): Check the PseudoElement, not just the cached pseudo style.
3334         * dom/ElementRareData.h:
3335         (WebCore::ElementRareData::pseudoElement): Remove ASSERT_NOT_REACHED so passing other pseudos returns 0.
3336
3337 2013-02-07  Mark Lam  <mark.lam@apple.com>
3338
3339         Add a comment about how the SQLTransaction state machine works.
3340         https://bugs.webkit.org/show_bug.cgi?id=109243.
3341
3342         Rubber stamped by Anders Carlsson.
3343
3344         No new tests.
3345
3346         * Modules/webdatabase/SQLTransactionBackend.cpp:
3347
3348 2013-02-06  Gavin Barraclough  <barraclough@apple.com>
3349
3350         PluginProcess should quit immediately if idle in response to low-memory notifications
3351         https://bugs.webkit.org/show_bug.cgi?id=109103
3352         <rdar://problem/12679827>
3353
3354         Reviewed by Darin Adler.
3355
3356         This patch allows a process to set a custom callback for low memory warnings
3357         (defaulting to the current behaviour, as implemented in releaseMemory).
3358
3359         MemoryPressureHandler::install is currently used for two purposes - it is
3360         called when first initializing a low memory handler for a process, and also
3361         used to reinstall the handler (on a delay) after the notification has occured.
3362         Since reinstallation doesn't change the callback, split these behaviours out -
3363         MemoryPressureHandler::initialize is added to initialization, and accepts a
3364         custom callback, install in made private.
3365
3366         * WebCore.exp.in:
3367             - Added export for releaseMemory.
3368         * platform/MemoryPressureHandler.cpp:
3369         (WebCore::MemoryPressureHandler::releaseMemory):
3370             - Added null implementation for non-Mac builds.
3371         * platform/MemoryPressureHandler.h:
3372         (WebCore::MemoryPressureHandler::initialize):
3373             - distinguish initialization from reinstallations, allow handler to be set.
3374         (MemoryPressureHandler):
3375             - Added m_lowMemoryHandler function pointer member variable.
3376         * platform/mac/MemoryPressureHandlerMac.mm:
3377         (WebCore::MemoryPressureHandler::respondToMemoryPressure):
3378             - Call m_lowMemoryHandler instead of releaseMemory.
3379
3380 2013-02-07  Kentaro Hara  <haraken@chromium.org>
3381
3382         [V8] #ifndef NDEBUG is redundant for assertContextHasCorrectPrototype()
3383         https://bugs.webkit.org/show_bug.cgi?id=109167
3384
3385         Reviewed by Andreas Kling.
3386
3387         Given that assertContextHasCorrectPrototype() is anyway empty in a release
3388         build, we don't need to surround it with #ifndef NDEBUG.
3389
3390         No tests. No change in behavior.
3391
3392         * bindings/v8/DOMWrapperWorld.cpp:
3393         (WebCore::DOMWrapperWorld::assertContextHasCorrectPrototype):
3394         * bindings/v8/DOMWrapperWorld.h:
3395         (DOMWrapperWorld):
3396         (WebCore::DOMWrapperWorld::isolated):
3397
3398 2013-02-07  Alexei Svitkine  <asvitkine@chromium.org>
3399
3400         Chromium: Hang parsing bidi control chars on Mac OS X 10.6
3401         https://bugs.webkit.org/show_bug.cgi?id=108877
3402
3403         This was broken a while ago by:
3404             https://bugs.webkit.org/show_bug.cgi?id=83045
3405
3406         On 10.6, CoreText will not produce any runs covering the
3407         Unicode BiDi RTL mark control char, which causes an infinite
3408         loop in ComplexTextController::indexOfCurrentRun() due to no
3409         run covering the character at offset 0.
3410
3411         This patch fixes that issue by finding the earliest run
3412         explicitly via the minimum stringBegin() index instead of
3413         relying on a run existing that covers offset 0.
3414
3415         Fixes hang on many BiDi wikipedia pages on Chromium/Mac10.6.
3416         Chromium bug: http://crbug.com/167844
3417
3418         New test in the same style as the harfbuzz-buffer-overrun.html
3419         test (in the same folder).
3420
3421         Reviewed by Eric Seidel.
3422
3423         Test: fast/text/international/rtl-mark.html
3424
3425         * platform/graphics/mac/ComplexTextController.cpp:
3426         (WebCore::ComplexTextController::indexOfCurrentRun):
3427
3428 2013-02-07  Kentaro Hara  <haraken@chromium.org>
3429
3430         Implement FocusEvent constructor
3431         https://bugs.webkit.org/show_bug.cgi?id=109170
3432
3433         Reviewed by Adam Barth.
3434
3435         Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
3436
3437         FocusEvent constructor should be implemented under a DOM4_EVENTS_CONSTRUCTOR
3438         flag, which is enabled on Chromium and Safari.
3439
3440         Test: fast/events/constructors/focus-event-constructor.html
3441
3442         * dom/FocusEvent.cpp:
3443         (WebCore::FocusEventInit::FocusEventInit):
3444         (WebCore):
3445         (WebCore::FocusEvent::FocusEvent):
3446         * dom/FocusEvent.h:
3447         (FocusEventInit):
3448         (WebCore):
3449         (WebCore::FocusEvent::create):
3450         (FocusEvent):
3451         * dom/FocusEvent.idl:
3452         * page/DOMWindow.idl:
3453
3454 2013-02-07  Elliott Sprehn  <esprehn@chromium.org>
3455
3456         HTML parser should queue MutationRecords for its operations
3457         https://bugs.webkit.org/show_bug.cgi?id=89351
3458
3459         Reviewed by Eric Seidel.
3460
3461         Generate mutation records inside the parser. This is done by using a
3462         ChildListMutationScope in the ContainerNode::parser* methods and then
3463         adding delivery before each <script> element would be processed by
3464         the parser.
3465
3466         Test: fast/dom/MutationObserver/parser-mutations.html
3467
3468         * dom/ContainerNode.cpp:
3469         (WebCore::ContainerNode::takeAllChildrenFrom):
3470         (WebCore::ContainerNode::parserInsertBefore):
3471         (WebCore::ContainerNode::parserRemoveChild):
3472         (WebCore::ContainerNode::parserAppendChild):
3473         * html/parser/HTMLScriptRunner.cpp:
3474         (WebCore::HTMLScriptRunner::executeParsingBlockingScript):
3475         (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
3476         (WebCore::HTMLScriptRunner::execute):
3477         (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
3478         (WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets):
3479         (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
3480         (WebCore::HTMLScriptRunner::runScript):
3481
3482 2013-02-07  Kentaro Hara  <haraken@chromium.org>
3483
3484         Fix FIXMEs in WindowFeatures.h
3485         https://bugs.webkit.org/show_bug.cgi?id=109151
3486
3487         Reviewed by Adam Barth.
3488
3489         1. // FIXME: We can delete this constructor once V8 showModalDialog is
3490            // changed to use DOMWindow.
3491
3492         This FIXME is not right. The WindowFeatures() constructor is used by
3493         other ports too (e.g. WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp).
3494         So we should remove the FIXME.
3495
3496         2. // FIXME: We can make these functions private non-member functions
3497            // once V8 showModalDialog is changed to use DOMWindow.
3498
3499         Given that V8 now uses DOMWindow in showModalDialog(), we can make the
3500         methods private.
3501
3502         No tests. No change in behavior.
3503
3504         * page/WindowFeatures.h:
3505         (WebCore):
3506         (WebCore::WindowFeatures::WindowFeatures):
3507         (WindowFeatures):
3508
3509 2013-02-07  Adam Barth  <abarth@webkit.org>
3510
3511         fast/parser/document-write-noscript.html fails for threaded HTML parser
3512         https://bugs.webkit.org/show_bug.cgi?id=109237
3513
3514         Reviewed by Eric Seidel.
3515
3516         If there are multiple calls to document.write in an external script, we
3517         need to wait for them all to complete before invalidating the
3518         speculative tokens. Instead of doing this when we unwind the
3519         document.write call stack, we do this when we're about to resume
3520         parsing after script execution.
3521
3522         Test: fast/parser/document-write-basic.html
3523
3524         * html/parser/HTMLDocumentParser.cpp:
3525         (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
3526         (WebCore::HTMLDocumentParser::insert):
3527         (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
3528
3529 2013-02-07  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
3530
3531         Fix build when compiling with css3-text and css3-conditional-rules feature flags enabled.
3532         https://bugs.webkit.org/show_bug.cgi?id=109217
3533
3534         Reviewed by Benjamin Poulain.
3535
3536         * css/InspectorCSSOMWrappers.cpp:
3537         (WebCore::InspectorCSSOMWrappers::collect):
3538
3539 2013-02-07  Keishi Hattori  <keishi@webkit.org>
3540
3541         REGRESSION (r140778): Calendar Picker doesn't open when the element has the required attribute
3542         https://bugs.webkit.org/show_bug.cgi?id=109136
3543
3544         Reviewed by Kent Tamura.
3545
3546         Calendar picker was using the "Clear" button to calculate the window width.
3547         Since it doesn't exist when the input element has a required attribute,
3548         it was throwing an error. This patch fixes the width calculating logic.
3549
3550         Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required-ar.html
3551                platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required.html
3552
3553         * Resources/pagepopups/calendarPicker.css:
3554         (.today-clear-area):
3555         * Resources/pagepopups/calendarPicker.js:
3556         (CalendarPicker.prototype.fixWindowSize): Fixing the logic to calculate
3557         the width. We don't want to use clear button because it doesn't exist
3558         when a value is required.
3559
3560 2013-02-07  Terry Anderson  <tdanderson@chromium.org>
3561
3562         Non-scrollable divs and non-scrollable iframes can scroll with touch
3563         https://bugs.webkit.org/show_bug.cgi?id=109087
3564
3565         Reviewed by Eric Seidel.
3566
3567         Tests: fast/events/touch/gesture/touch-gesture-noscroll-div.html
3568                fast/events/touch/gesture/touch-gesture-noscroll-iframe.html
3569
3570         When finding a candidate for a scrollable node in
3571         EventHandler::handleGestureScrollUpdate(), select the document node
3572         if it is reached before any scrollable element when walking up the DOM
3573         tree. Also ensure that calling RenderLayer::scrollBy() for a document
3574         node does not result in scrolling if the element is not scrollable.
3575
3576         * page/EventHandler.cpp:
3577         (WebCore::closestScrollableNodeCandidate):
3578         (WebCore::EventHandler::handleGestureScrollUpdate):
3579         * rendering/RenderLayer.cpp:
3580         (WebCore::RenderLayer::scrollBy):
3581
3582 2013-02-07  Mark Lam  <mark.lam@apple.com>
3583
3584         Introduce SQLTransactionBackend and SQLTransactionBackendSync [Part 2].
3585         https://bugs.webkit.org/show_bug.cgi?id=109109.
3586
3587         Reviewed by Anders Carlsson.
3588
3589         Adding back the new SQLTransaction and SQLTransactionSync files.
3590
3591         No new tests.
3592
3593         * Modules/webdatabase/SQLTransaction.cpp: Added.
3594         (WebCore::SQLTransaction::create):
3595         (WebCore::SQLTransaction::SQLTransaction):
3596         (WebCore::SQLTransaction::from):
3597         * Modules/webdatabase/SQLTransaction.h: Added.
3598         (SQLTransaction):
3599         * Modules/webdatabase/SQLTransactionSync.cpp: Added.
3600         (WebCore::SQLTransactionSync::create):
3601         (WebCore::SQLTransactionSync::SQLTransactionSync):
3602         (WebCore::SQLTransactionSync::from):
3603         * Modules/webdatabase/SQLTransactionSync.h: Added.
3604         (SQLTransactionSync):
3605
3606 2013-02-07  Mark Lam  <mark.lam@apple.com>
3607
3608         Introduce SQLTransactionBackend and SQLTransactionBackendSync.
3609         https://bugs.webkit.org/show_bug.cgi?id=109109.
3610
3611         Reviewed by Anders Carlsson.
3612
3613         - Renamed SQLTransaction and SQLTransactionSync to SQLTransactionBackend
3614           and SQLTransactionBackendSync respectively.
3615         - Added back SQLTransaction and SQLTransactionSync as new files, and have
3616           their classes extends their respective backends. This is a stop gap
3617           measure to keep things working until the front-end and back-end can be
3618           properly split.
3619           Note: these files will be committed in a subsequent commit to ensure
3620           that the patching goes smoothly.
3621         - Where needed, I made use of new SQLTransaction::from() and
3622           SQLTransactionSync::from() static methods that "get" the front-end
3623           transactions from the back-ends. This is also a stop gap measure to
3624           keep things working until the proper refactoring is complete.
3625         - Fixed up pre-existing style checker violations that are now detected
3626           on code that were touched during my renaming.
3627         - Added the back-end files to all the build files.
3628
3629         No new tests.
3630
3631         * CMakeLists.txt:
3632         * GNUmakefile.list.am:
3633         * Modules/webdatabase/Database.cpp:
3634         (WebCore::Database::scheduleTransactionStep):
3635         * Modules/webdatabase/Database.h:
3636         (Database):
3637         * Modules/webdatabase/DatabaseBackend.h:
3638         (DatabaseBackend):
3639         * Modules/webdatabase/DatabaseTask.cpp:
3640         (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::DatabaseTransactionTask):
3641         * Modules/webdatabase/DatabaseTask.h:
3642         (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::create):
3643         (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::transaction):
3644         (DatabaseBackendAsync::DatabaseTransactionTask):
3645         * Modules/webdatabase/SQLTransaction.cpp: Removed.
3646         * Modules/webdatabase/SQLTransaction.h: Removed.
3647         * Modules/webdatabase/SQLTransactionBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/SQLTransaction.cpp.
3648         (WebCore::SQLTransactionBackend::SQLTransactionBackend):
3649         (WebCore::SQLTransactionBackend::~SQLTransactionBackend):
3650         (WebCore::SQLTransactionBackend::executeSQL):
3651         (WebCore::SQLTransactionBackend::enqueueStatement):
3652         (WebCore::SQLTransactionBackend::debugStepName):
3653         (WebCore::SQLTransactionBackend::checkAndHandleClosedOrInterruptedDatabase):
3654         (WebCore::SQLTransactionBackend::performNextStep):
3655         (WebCore::SQLTransactionBackend::performPendingCallback):
3656         (WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
3657         (WebCore::SQLTransactionBackend::acquireLock):
3658         (WebCore::SQLTransactionBackend::lockAcquired):
3659         (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
3660         (WebCore::SQLTransactionBackend::deliverTransactionCallback):
3661         (WebCore::SQLTransactionBackend::scheduleToRunStatements):
3662         (WebCore::SQLTransactionBackend::runStatements):
3663         (WebCore::SQLTransactionBackend::getNextStatement):
3664         (WebCore::SQLTransactionBackend::runCurrentStatement):
3665         (WebCore::SQLTransactionBackend::handleCurrentStatementError):
3666         (WebCore::SQLTransactionBackend::deliverStatementCallback):
3667         (WebCore::SQLTransactionBackend::deliverQuotaIncreaseCallback):
3668         (WebCore::SQLTransactionBackend::postflightAndCommit):
3669         (WebCore::SQLTransactionBackend::deliverSuccessCallback):
3670         (WebCore::SQLTransactionBackend::cleanupAfterSuccessCallback):
3671         (WebCore::SQLTransactionBackend::handleTransactionError):
3672         (WebCore::SQLTransactionBackend::deliverTransactionErrorCallback):
3673         (WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
3674         * Modules/webdatabase/SQLTransactionBackend.h: Copied from Source/WebCore/Modules/webdatabase/SQLTransaction.h.
3675         (SQLTransactionBackend):
3676         * Modules/webdatabase/SQLTransactionBackendSync.cpp: Copied from Source/WebCore/Modules/webdatabase/SQLTransactionSync.cpp.
3677         (WebCore::SQLTransactionBackendSync::SQLTransactionBackendSync):
3678         (WebCore::SQLTransactionBackendSync::~SQLTransactionBackendSync):
3679         (WebCore::SQLTransactionBackendSync::executeSQL):
3680         (WebCore::SQLTransactionBackendSync::begin):
3681         (WebCore::SQLTransactionBackendSync::execute):
3682         (WebCore::SQLTransactionBackendSync::commit):
3683         (WebCore::SQLTransactionBackendSync::rollback):
3684         * Modules/webdatabase/SQLTransactionBackendSync.h: Copied from Source/WebCore/Modules/webdatabase/SQLTransactionSync.h.
3685         (SQLTransactionBackendSync):
3686         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
3687         (WebCore::getDatabaseIdentifier):
3688         (WebCore::SQLTransactionCoordinator::processPendingTransactions):
3689         (WebCore::SQLTransactionCoordinator::acquireLock):
3690         (WebCore::SQLTransactionCoordinator::releaseLock):
3691         (WebCore::SQLTransactionCoordinator::shutdown):
3692         * Modules/webdatabase/SQLTransactionCoordinator.h:
3693         (SQLTransactionCoordinator):
3694         (WebCore::SQLTransactionCoordinator::SQLTransactionCoordinator):
3695         (CoordinationInfo):
3696         * Modules/webdatabase/SQLTransactionSync.cpp: Removed.
3697         * Modules/webdatabase/SQLTransactionSync.h: Removed.
3698         * Target.pri:
3699         * WebCore.gypi:
3700         * WebCore.vcproj/WebCore.vcproj:
3701         * WebCore.vcxproj/WebCore.vcxproj:
3702         * WebCore.vcxproj/WebCore.vcxproj.filters:
3703         * WebCore.xcodeproj/project.pbxproj:
3704
3705 2013-02-07  Dean Jackson  <dino@apple.com>
3706
3707         Use new speech bubble artwork for captions menu button
3708         https://bugs.webkit.org/show_bug.cgi?id=109215
3709
3710         Reviewed by Eric Carlson.
3711
3712         Rather than call into RenderTheme to display this button, embed artwork
3713         into the CSS. This means we can remove some uncalled methods in
3714         RenderTheme.
3715
3716         * css/mediaControlsQuickTime.css:
3717         (video::-webkit-media-controls-toggle-closed-captions-button): New background image using SVG.
3718         * rendering/RenderTheme.cpp:
3719         (WebCore::RenderTheme::paint): Don't call the specific painter for the CC button.
3720         * rendering/RenderTheme.h: Remove unused function.
3721         * rendering/RenderThemeMac.h: Ditto.
3722         * rendering/RenderThemeMac.mm: Ditto.
3723
3724 2013-02-07  Michelangelo De Simone  <michelangelo@webkit.org>
3725
3726         [CSS Shaders] Add the last blending step
3727         https://bugs.webkit.org/show_bug.cgi?id=104012
3728
3729         The resulting blended color in mix() is now weighted according to
3730         the original element's backdrop alpha value.
3731
3732         Reviewed by Dean Jackson.
3733
3734         Test: css3/filters/custom/custom-filter-blend-fractional-destination-alpha.html
3735
3736         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
3737         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
3738
3739 2013-02-07  Benjamin Poulain  <bpoulain@apple.com>
3740
3741         Fix two exports of WebCore symbols on iOS
3742         https://bugs.webkit.org/show_bug.cgi?id=109238
3743
3744         Reviewed by David Kilzer.
3745
3746         * WebCore.exp.in: Export wkCTFontTransformGlyphs but not
3747         wkCGContextDrawsWithCorrectShadowOffsets on iOS.
3748
3749 2013-02-07  Hans Muller  <hmuller@adobe.com>
3750
3751         [CSS Exclusions] Ignore ExclusionPolygon edges above minLogicalIntervalTop
3752         https://bugs.webkit.org/show_bug.cgi?id=107566
3753
3754         Reviewed by David Hyatt.
3755
3756         Improve ExclusionPolygon::firstIncludedIntervalLogicalTop() performance by only
3757         creating offset edges for polygon edges that are below the horizontal minLogicalIntervalTop
3758         line. In other words, don't bother creating offset edges that can't define the polygon's
3759         first fit location.
3760
3761         Test: fast/exclusions/shape-inside/shape-inside-first-fit-004.html
3762
3763         * rendering/ExclusionPolygon.cpp:
3764         (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Don't create offset edges for polygon edges above minLogicalIntervalTop.
3765
3766 2013-02-07  Jer Noble  <jer.noble@apple.com>
3767
3768         Improve logging of MediaPlayerPrivateAVFoundation Notifications.
3769         https://bugs.webkit.org/show_bug.cgi?id=109223
3770
3771         Reviewed by Eric Carlson.
3772
3773         Convert the existing Notification enum to an expandable macro. Then add a
3774         Logging-only function which stringifies the enums.
3775
3776         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
3777         (WebCore):
3778         (WebCore::notificationName):
3779         (WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
3780         (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
3781         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
3782
3783 2013-02-07  Martin Robinson  <mrobinson@igalia.com>
3784
3785         [GTK] Cleanup command-line defines
3786         https://bugs.webkit.org/show_bug.cgi?id=109213
3787
3788         Reviewed by Xan Lopez.
3789
3790         * GNUmakefile.am: Remove references to flags that are now handled
3791         via autotoolsconfig.h.
3792
3793 2013-02-07  Tom Sepez  <tsepez@chromium.org>
3794
3795         [V8] Binding Integrity crash in V8MediaStream::createWrapper
3796         https://bugs.webkit.org/show_bug.cgi?id=109211
3797
3798         Reviewed by Adam Barth.
3799
3800         Patch suppresses a chrome crasher.
3801
3802         * Modules/mediastream/MediaStream.idl:
3803
3804 2013-02-07  Eric Carlson  <eric.carlson@apple.com>
3805
3806         [Mac] decrease in-band caption advance notice interval
3807         https://bugs.webkit.org/show_bug.cgi?id=109190
3808
3809         Reviewed by Simon Fraser.
3810
3811         No new tests, no observable change in behavior.
3812
3813         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3814         (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Request cues 2 seconds in advance.
3815
3816 2013-02-07  ChangSeok Oh  <shivamidow@gmail.com>
3817
3818         [GTK][AC] Clutter required version up to 1.12
3819         https://bugs.webkit.org/show_bug.cgi?id=109037
3820
3821         Reviewed by Martin Robinson.
3822
3823         Replace deprecated clutter apis with new ones.
3824
3825         No new tests, since this patch is minor refactoring.
3826
3827         * platform/graphics/clutter/GraphicsLayerActor.cpp:
3828         (graphicsLayerActorSetAnchorPoint):
3829         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
3830         (WebCore::idleDestroy):
3831         (WebCore::GraphicsLayerClutter::updateSublayerList):
3832
3833 2013-02-07  Benjamin Poulain  <bpoulain@apple.com>
3834
3835         Move pauseAnimation/pauseTransition from TestRunner to Internals
3836         https://bugs.webkit.org/show_bug.cgi?id=109107
3837
3838         Reviewed by Anders Carlsson.
3839
3840         Tests: animations/animation-internals-api-multiple-keyframes.html
3841                animations/animation-internals-api.html
3842
3843         * testing/Internals.cpp:
3844         (WebCore::Internals::pauseAnimationAtTimeOnElement):
3845         (WebCore):
3846         (WebCore::Internals::pauseTransitionAtTimeOnElement):
3847         * testing/Internals.h:
3848         (Internals):
3849         * testing/Internals.idl:
3850
3851 2013-02-07  Gavin Peters  <gavinp@chromium.org>
3852
3853         Unreviewed, rolling out r142155.
3854         http://trac.webkit.org/changeset/142155
3855         https://bugs.webkit.org/show_bug.cgi?id=82888
3856
3857         cr/win build broke.
3858
3859         * bindings/js/JSClipboardCustom.cpp:
3860         (WebCore::JSClipboard::types):
3861         * bindings/v8/custom/V8ClipboardCustom.cpp:
3862         (WebCore::V8Clipboard::typesAccessorGetter):
3863         * dom/Clipboard.h:
3864         (Clipboard):
3865         * platform/blackberry/ClipboardBlackBerry.cpp:
3866         (WebCore::ClipboardBlackBerry::types):
3867         * platform/blackberry/ClipboardBlackBerry.h:
3868         (ClipboardBlackBerry):
3869         * platform/chromium/ChromiumDataObject.cpp:
3870         (WebCore::ChromiumDataObject::types):
3871         * platform/chromium/ChromiumDataObject.h:
3872         (ChromiumDataObject):
3873         * platform/chromium/ClipboardChromium.cpp:
3874         (WebCore::ClipboardChromium::types):
3875         * platform/chromium/ClipboardChromium.h:
3876         (ClipboardChromium):
3877         * platform/efl/ClipboardEfl.cpp:
3878         (WebCore::ClipboardEfl::types):
3879         * platform/efl/ClipboardEfl.h:
3880         (ClipboardEfl):
3881         * platform/gtk/ClipboardGtk.cpp:
3882         (WebCore::ClipboardGtk::types):
3883         * platform/gtk/ClipboardGtk.h:
3884         (ClipboardGtk):
3885         * platform/mac/ClipboardMac.h:
3886         (ClipboardMac):
3887         * platform/mac/ClipboardMac.mm:
3888         (WebCore::addHTMLClipboardTypesForCocoaType):
3889         (WebCore::ClipboardMac::types):
3890         * platform/qt/ClipboardQt.cpp:
3891         (WebCore::ClipboardQt::types):
3892         * platform/qt/ClipboardQt.h:
3893         (ClipboardQt):
3894         * platform/win/ClipboardWin.cpp:
3895         (WebCore::addMimeTypesForFormat):
3896         (WebCore::ClipboardWin::types):
3897         * platform/win/ClipboardWin.h:
3898         (ClipboardWin):
3899
3900 2013-02-07  Rik Cabanier  <cabanier@adobe.com>
3901
3902         Add support for parsing of -webkit-background-blend-mode
3903         https://bugs.webkit.org/show_bug.cgi?id=108547
3904
3905         Reviewed by David Hyatt.
3906
3907         Added parsing and general CSS handling of -webkit-background-blend-mode per 
3908         https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#background-blend-mode
3909
3910         Tests: css3/compositing/background-blend-mode-property-parsing.html
3911                css3/compositing/background-blend-mode-property.html
3912
3913         * css/CSSComputedStyleDeclaration.cpp: Built value for getComputedStyle.
3914         (WebCore):
3915         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3916         * css/CSSParser.cpp: Parsed and stored value of -webkit-background-blend-mode.
3917         (WebCore::CSSParser::parseValue):
3918         (WebCore::CSSParser::parseFillProperty):
3919         * css/CSSProperty.cpp: Listed -webkit-background-blend-mode as a non-inherited property.
3920         (WebCore::CSSProperty::isInheritedProperty):
3921         * css/CSSPropertyNames.in: Added -webkit-background-blend-mode as a CSS property.
3922         * css/CSSToStyleMap.cpp: Mapped background blend mode from CSS value to enum.
3923         (WebCore::CSSToStyleMap::mapFillBlendMode):
3924         (WebCore):
3925         * css/CSSToStyleMap.h: Added function declaration 'mapFillBlendMode'.
3926         (CSSToStyleMap):
3927         * css/StyleBuilder.cpp: Set up propery handler for -webkit-background-blend-mode.
3928         (WebCore::StyleBuilder::StyleBuilder):
3929         * rendering/style/FillLayer.cpp: Added code to store and retrieve the blend mode from a layer.
3930         (WebCore::FillLayer::FillLayer):
3931         (WebCore::FillLayer::operator=):
3932         (WebCore::FillLayer::operator==):
3933         (WebCore::FillLayer::fillUnsetProperties):
3934         * rendering/style/FillLayer.h: Added function definitions to manage blend mode in a layer.
3935         (WebCore::FillLayer::blendMode):
3936         (WebCore::FillLayer::isBlendModeSet):
3937         (WebCore::FillLayer::setBlendMode):
3938         (WebCore::FillLayer::clearBlendMode):
3939         (WebCore::FillLayer::initialFillBlendMode):
3940         (FillLayer):
3941
3942 2013-02-07  Gavin Peters  <gavinp@chromium.org>
3943
3944         Unreviewed, rolling out r142142.
3945         http://trac.webkit.org/changeset/142142
3946         https://bugs.webkit.org/show_bug.cgi?id=109154
3947
3948         Mac expectations were not right. See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio-leak-test.html and http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio.html .
3949
3950
3951         * inspector/front-end/DefaultTextEditor.js:
3952         (WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
3953
3954 2013-02-07  Gavin Peters  <gavinp@chromium.org>
3955
3956         Unreviewed, rolling out r142081.
3957         http://trac.webkit.org/changeset/142081
3958         https://bugs.webkit.org/show_bug.cgi?id=109146
3959
3960         The patch caused a crash in inspector-protocol/nmi-webaudio*.html .
3961
3962         See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio-leak-test.html and http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio.html .
3963
3964         * dom/WebCoreMemoryInstrumentation.cpp:
3965         (WebCore):
3966         * inspector/front-end/NativeMemorySnapshotView.js:
3967         (WebInspector.MemoryBlockViewProperties._initialize):
3968         * platform/PlatformMemoryInstrumentation.cpp:
3969         (WebCore):
3970
3971 2013-02-07  Bear Travis  <betravis@adobe.com>
3972
3973         [CSS Exclusions] shape-inside does not properly handle padding or border
3974         https://bugs.webkit.org/show_bug.cgi?id=102715
3975
3976         Reviewed by David Hyatt.
3977
3978         This patch positions the exclusion shape based on the value of the css box sizing
3979         property. Geometry calculations happen in the shape coordinate space. For layout,
3980         these coordinates are translated to the border-box coordinate system by adding
3981         the appropriate offsets.
3982
3983         Test: fast/exclusions/shape-inside/shape-inside-box-sizing.html
3984
3985         * rendering/ExclusionShapeInfo.cpp:
3986         (WebCore::::computedShape): Pass m_shapeLogicalWidth to the exclusion shape
3987         geometry code.
3988         * rendering/ExclusionShapeInfo.h:
3989         (WebCore::ExclusionShapeInfo::setShapeSize): Adjust block layout dimensions to
3990         shape dimensions when checking to see if the shape geometry must be recalculated.
3991         (WebCore::ExclusionShapeInfo::shapeLogicalTop): Account for layout offsets.
3992         (WebCore::ExclusionShapeInfo::shapeLogicalBottom): Ditto.
3993         (WebCore::ExclusionShapeInfo::shapeLogicalLeft): Ditto.
3994         (WebCore::ExclusionShapeInfo::shapeLogicalRight): Ditto.
3995         (WebCore::ExclusionShapeInfo::logicalTopOffset): Return the offset from the logical
3996         top of the border box to the logical top of the shape.
3997         (WebCore::ExclusionShapeInfo::logicalLeftOffset): Return the offset from the logical
3998         left of the border box to the logical left of the shape.
3999         (ExclusionShapeInfo):
4000         * rendering/ExclusionShapeInsideInfo.cpp:
4001         (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine): Adjust line top to
4002         be in shape coordinates.
4003         (WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): Ditto.
4004         * rendering/ExclusionShapeInsideInfo.h:
4005         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Use consistent
4006         coordinate system (border box) to test for whether a line overlaps a shape.
4007         (WebCore::ExclusionShapeInsideInfo::logicalLineTop): Include the logical offset
4008         from the border box.
4009         (WebCore::ExclusionShapeInsideInfo::logicalLineBottom): Ditto.
4010
4011 2013-02-07  Benjamin Poulain  <bpoulain@apple.com>
4012
4013         Upstream iOS isWebThread() and isUIThread()
4014         https://bugs.webkit.org/show_bug.cgi?id=109130
4015
4016         Reviewed by Sam Weinig.
4017
4018         * bindings/objc/WebScriptObject.mm:
4019         (+[WebScriptObject initialize]):
4020         * platform/mac/SharedBufferMac.mm:
4021         (+[WebCoreSharedBufferData initialize]):
4022         #ifdef out the legacy initialization as it is not correct when
4023         using a WebThread.
4024
4025 2013-02-07  Vivek Galatage  <vivek.vg@samsung.com>
4026
4027         Web Inspector: CPU pegged when inspecting LocalStorage that mutates.
4028   &