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