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