1 2014-03-11 Brent Fulgham <bfulgham@apple.com>
3 Get the incomplete WebVTT Regions code to build again.
4 https://bugs.webkit.org/show_bug.cgi?id=130094
6 Reviewed by Eric Carlson.
8 The feature is not being turned on here, so there are no new tests.
10 * DerivedSources.make: Add missing IDL files for Regions.
11 * WebCore.xcodeproj/project.pbxproj: Add Regions-related files.
12 * html/track/InbandWebVTTTextTrack.cpp:
13 (WebCore::InbandWebVTTTextTrack::newRegionsParsed): Add stub implementation.
14 * html/track/LoadableTextTrack.cpp: Add missing include file.
15 * html/track/TextTrack.cpp:
16 (WebCore::TextTrack::TextTrack): Correct ordering of construction
17 to avoid compiler warning.
19 2014-03-11 Ryuan Choi <ryuan.choi@samsung.com>
21 Remove unused method from BatteryController
22 https://bugs.webkit.org/show_bug.cgi?id=130063
24 Reviewed by Darin Adler.
26 * Modules/battery/BatteryController.h: Removed client() which is not used.
28 2014-03-11 Krzysztof Czech <k.czech@samsung.com>
30 [ATK] Expose aria-posinset and aria-setsize through object attributes
31 https://bugs.webkit.org/show_bug.cgi?id=130011
33 Reviewed by Chris Fleizach.
35 Based on http://www.w3.org/TR/2014/PR-wai-aria-implementation-20140206/
36 aria-poinset and aria-setsize can be exposed as object attributes.
38 Test: accessibility/aria-setsize-posinset.html
40 * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
41 (webkitAccessibleGetAttributes):
43 2014-03-10 Frédéric Wang <fred.wang@free.fr>
45 Improve renderer classes for MathML Token elements.
46 https://bugs.webkit.org/show_bug.cgi?id=124838
48 Reviewed by Chris Fleizach.
50 This patch continues the refactoring of token elements that has been
51 started in bug 44208. The <mo> element now derives from the
52 RenderMathMLToken class, which was already used for the <mi> element.
53 The behavior of anonymous <mo> elements created by the <mfenced> element
54 is now more consistent with the one of "standard" <mo> elements and the
55 spacing around them is now handled in RenderMathMLOperator. This is a
56 first step towards fixing bugs 115787 and 118843. The only visible
57 rendering change is how <mfenced> open/close attributes handle
58 whitespace and multiple characters and some tests are added for that.
59 Other features are already covered by other tests. Finally, this also
60 removes some code from AccessibilityRenderObject that was used to
61 workaround issues with <mo> elements.
63 * accessibility/AccessibilityRenderObject.cpp:
64 (WebCore::startOfContinuations):
65 (WebCore::AccessibilityRenderObject::textUnderElement):
66 (WebCore::AccessibilityRenderObject::isMathOperator):
67 (WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
68 * mathml/MathMLTextElement.cpp:
69 (WebCore::MathMLTextElement::didAttachRenderers):
70 (WebCore::MathMLTextElement::childrenChanged):
71 * rendering/mathml/RenderMathMLBlock.cpp:
72 (WebCore::RenderMathMLBlock::RenderMathMLBlock):
73 * rendering/mathml/RenderMathMLBlock.h:
74 * rendering/mathml/RenderMathMLFenced.cpp:
75 (WebCore::RenderMathMLFenced::RenderMathMLFenced):
76 (WebCore::RenderMathMLFenced::updateFromElement):
77 (WebCore::RenderMathMLFenced::createMathMLOperator):
78 (WebCore::RenderMathMLFenced::makeFences):
79 (WebCore::RenderMathMLFenced::addChild):
80 * rendering/mathml/RenderMathMLFenced.h:
81 * rendering/mathml/RenderMathMLOperator.cpp:
82 (WebCore::RenderMathMLOperator::RenderMathMLOperator):
83 (WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
84 (WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry):
85 (WebCore::RenderMathMLOperator::SetOperatorProperties):
86 (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
87 (WebCore::RenderMathMLOperator::rebuildTokenContent):
88 (WebCore::RenderMathMLOperator::updateTokenContent):
89 (WebCore::RenderMathMLOperator::updateStyle):
90 (WebCore::RenderMathMLOperator::firstLineBaseline):
91 (WebCore::RenderMathMLOperator::paint):
92 (WebCore::RenderMathMLOperator::paintChildren):
93 * rendering/mathml/RenderMathMLOperator.h:
94 * rendering/mathml/RenderMathMLToken.cpp:
95 (WebCore::RenderMathMLToken::createWrapperIfNeeded):
97 2014-03-10 James Craig <jcraig@apple.com>
99 Web Inspector: AXI: Expose checked/disabled/expanded/pressed/readonly/selected
100 https://bugs.webkit.org/show_bug.cgi?id=129781
102 Reviewed by Joseph Pecoraro.
104 Enabling several more properties to be exposed in the Accessibility Node Inspector.
106 Updated Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
108 * accessibility/AccessibilityObject.cpp:
109 (WebCore::AccessibilityObject::supportsChecked):
110 * accessibility/AccessibilityObject.h:
111 * inspector/InspectorDOMAgent.cpp:
112 (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
113 * inspector/protocol/DOM.json:
115 2014-03-10 Bem Jones-Bey <bjonesbe@adobe.com>
117 [CSS Shapes] inset corner radii are not flipped for vertical writing modes
118 https://bugs.webkit.org/show_bug.cgi?id=129918
120 Reviewed by Dean Jackson.
122 When creating an inset shape, convert the radii to logical coordinates
125 Tests: fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left.html
126 fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right.html
128 * rendering/shapes/Shape.cpp:
129 (WebCore::Shape::createShape): Convert the radii to logical
132 2014-03-10 Joseph Pecoraro <pecoraro@apple.com>
134 Web Inspector: Frontend loaded resources from cache are not hidden as expected
135 https://bugs.webkit.org/show_bug.cgi?id=130044
137 Reviewed by Timothy Hatcher.
139 * loader/FrameLoader.cpp:
140 (WebCore::FrameLoader::loadedResourceFromMemoryCache):
141 Use the new request that was passed in. Assume it is filled in appropriately.
143 * loader/cache/CachedResourceLoader.h:
144 * loader/cache/CachedResourceLoader.cpp:
145 (WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):
146 Carry over the hidden from inspector state if the passed in request had it,
147 and create the request that loadedResourceFromMemoryCache will use.
149 * xml/XMLHttpRequest.cpp:
150 (WebCore::XMLHttpRequest::createRequest):
151 Add missing ifdefs for INSPECTOR only function.
153 2014-03-10 Jinwoo Song <jinwoo7.song@samsung.com>
155 Remove 'visibilitychange' attribute event listener from document
156 https://bugs.webkit.org/show_bug.cgi?id=129794
158 Reviewed by Simon Fraser.
160 Remove the unused attribute event listener which is not defined in Page Visibility API spec.
161 http://www.w3.org/TR/page-visibility/#sec-document-interface
165 2014-03-10 Benjamin Poulain <bpoulain@apple.com>
167 [iOS][WebKit 2] Wire the unobscured rect in the WebProcess
168 https://bugs.webkit.org/show_bug.cgi?id=130058
170 Reviewed by Simon Fraser.
173 * platform/ScrollView.h:
174 * platform/ios/ScrollViewIOS.mm:
175 (WebCore::ScrollView::unobscuredContentRect):
176 (WebCore::ScrollView::setUnobscuredContentRect):
178 2014-03-10 Benjamin Poulain <bpoulain@apple.com>
180 makeSelectorPseudoTypeMap.py should not be copied in the WebCore bundle
182 * WebCore.xcodeproj/project.pbxproj:
184 2014-03-10 Mario Sanchez Prada <mario.prada@samsung.com>
186 [GTK] Add support for Geoclue2
187 https://bugs.webkit.org/show_bug.cgi?id=120185
189 Reviewed by Carlos Garcia Campos.
191 Patch by Anton Obzhirov <a.obzhirov@samsung.com> and Mario Sanchez Prada <mario.prada@samsung.com>
193 Implement a new geolocation provider based on Geoclue2, which will only
194 be used if a good enough version of Geoclue2 is found at configure time.
196 * GNUmakefile.am: Generate C-API for accessing the D-Bus API
197 provided by Geoclue2, and place it in DerivedSources.
198 * GNUmakefile.list.am: Add GeolocationProviderGeoclue2.cpp, and
199 include the generated proxy files when using Geoclue2.
200 * PlatformGTK.cmake: Likewise, for CMake based builds.
201 * platform/geoclue/GeolocationProviderGeoclue.h: Modified to
202 accomodate the needs both for Geoclue and Geoclue2 providers.
203 * platform/geoclue/GeolocationProviderGeoclue1.cpp: Renamed from Source/WebCore/platform/geoclue/GeolocationProviderGeoclue.cpp.
204 (GeolocationProviderGeoclue::getPositionCallback):
205 (GeolocationProviderGeoclue::positionChangedCallback):
206 (GeolocationProviderGeoclue::createGeocluePositionCallback):
207 (GeolocationProviderGeoclue::geoclueClientSetRequirementsCallback):
208 (GeolocationProviderGeoclue::createGeoclueClientCallback):
209 (GeolocationProviderGeoclue::GeolocationProviderGeoclue):
210 (GeolocationProviderGeoclue::~GeolocationProviderGeoclue):
211 (GeolocationProviderGeoclue::startUpdating):
212 (GeolocationProviderGeoclue::stopUpdating):
213 (GeolocationProviderGeoclue::setEnableHighAccuracy):
214 (GeolocationProviderGeoclue::initializeGeoclueClient):
215 (GeolocationProviderGeoclue::initializeGeocluePosition):
216 (GeolocationProviderGeoclue::updateClientRequirements):
217 (GeolocationProviderGeoclue::positionChanged):
218 (GeolocationProviderGeoclue::errorOccurred):
219 * platform/geoclue/GeolocationProviderGeoclue2.cpp: Added.
220 (GeolocationProviderGeoclue::GeolocationProviderGeoclue):
221 (GeolocationProviderGeoclue::~GeolocationProviderGeoclue):
222 (GeolocationProviderGeoclue::startUpdating):
223 (GeolocationProviderGeoclue::stopUpdating):
224 (GeolocationProviderGeoclue::setEnableHighAccuracy):
225 (GeolocationProviderGeoclue::createGeoclueManagerProxyCallback):
226 (GeolocationProviderGeoclue::getGeoclueClientCallback):
227 (GeolocationProviderGeoclue::createGeoclueClientProxyCallback):
228 (GeolocationProviderGeoclue::startClientCallback):
229 (GeolocationProviderGeoclue::locationUpdatedCallback):
230 (GeolocationProviderGeoclue::createLocationProxyCallback):
231 (GeolocationProviderGeoclue::startGeoclueClient):
232 (GeolocationProviderGeoclue::updateLocation):
233 (GeolocationProviderGeoclue::errorOccurred):
234 (GeolocationProviderGeoclue::updateClientRequirements):
236 2014-03-10 Brent Fulgham <bfulgham@apple.com>
238 Unreviewed Windows Build Fix.
240 * WebCore.vcxproj/WebCore.vcxproj: Don't build cURL files for Apple Windows port.
241 * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
242 * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
243 (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerPaintContents): Correct
244 method signature to match base class.
245 (WebCore::MediaPlayerPrivateQuickTimeVisualContext::loadInternal): Use proper character encoding.
247 2014-03-10 Simon Fraser <simon.fraser@apple.com>
250 https://bugs.webkit.org/show_bug.cgi?id=130048
252 Reviewed by Anders Carlsson.
254 The NSDictionary was leaked.
256 * page/ios/UserAgentIOS.mm:
257 (WebCore::osMarketingVersion):
259 2014-03-10 Beth Dakin <bdakin@apple.com>
261 Set background color of WK2's UIScrollView to the pageExtendedBackgroundColor
262 https://bugs.webkit.org/show_bug.cgi?id=129919
264 Reviewed by Benjamin Poulain.
266 WK2 needs to be able to ask for the pageExtendedBackgroundColor, so this patch
267 adds a function to Page that will return it
271 (WebCore::Page::pageExtendedBackgroundColor):
273 * rendering/RenderLayerCompositor.h:
274 (WebCore::RenderLayerCompositor::rootExtendedBackgroundColor):
276 2014-03-10 Benjamin Poulain <bpoulain@apple.com>
278 Generalize unobscured rect to all ports
279 https://bugs.webkit.org/show_bug.cgi?id=130036
281 Reviewed by Simon Fraser.
283 iOS differentiates visible content and unobscured content. This patch moves the concept to all
284 ports to remove the #ifdefs from the call sites.
286 On everything but iOS, unobscuredRect and visibleRect are the same.
289 * page/DOMWindow.cpp:
290 (WebCore::DOMWindow::innerHeight):
291 (WebCore::DOMWindow::innerWidth):
292 * page/SpatialNavigation.cpp:
293 (WebCore::canScrollInDirection):
294 * platform/ScrollView.cpp:
295 (WebCore::ScrollView::updateScrollbars):
296 (WebCore::ScrollView::paint):
297 * platform/ScrollView.h:
298 (WebCore::ScrollView::unobscuredContentRectIncludingScrollbars):
299 (WebCore::ScrollView::unobscuredContentRect):
300 * rendering/RenderView.cpp:
301 (WebCore::RenderView::viewportSize):
303 2014-03-10 Benjamin Poulain <benjamin@webkit.org>
305 Start splitting CSS Selectors's pseudo types
306 https://bugs.webkit.org/show_bug.cgi?id=130003
308 Reviewed by Andreas Kling.
310 CSS Selectors pseudo types come in 3 flavors: page, pseudo class, pseudo elements.
312 The three types are mixed together in a single enum list named PseudoType. Only some combinations
313 of match type + pseudo type are valid, but this is implicitly defined from the code.
315 This patch is the beginning of a refactoring to add more clear boundaries between
316 valid and invalid combinations.
318 First, the handling of page pseudo types is completely split from the other values.
319 The parser use a different method for handling the value CSSParserSelector::parsePagePseudoSelector().
321 PagePseudo types no longer store their string in the CSSSelector either to reduce the redundancy
323 When we need to generate the string for those CSSSelector, we recreate the string as needed in
324 CSSSelector::selectorText().
326 The remaining two types are not yet split in this patch but this introduce the preliminary clean up
328 The list of parsed pseudo types is now generated at compile time from the source in SelectorPseudoTypeMap.in.
330 * DerivedSources.make:
331 The mapping of strings to pseudo types is generated from SelectorPseudoTypeMap.in
332 by the new script makeSelectorPseudoTypeMap.py.
334 * WebCore.xcodeproj/project.pbxproj:
335 * css/CSSGrammar.y.in:
336 Split the parsing of Pseudo Types. Pseudo page get its own method. The others will need some work.
338 * css/CSSParserValues.cpp:
339 (WebCore::CSSParserSelector::parsePagePseudoSelector):
340 (WebCore::CSSParserSelector::setPseudoTypeValue):
341 * css/CSSParserValues.h:
342 * css/CSSSelector.cpp:
343 (WebCore::CSSSelector::specificityForPage):
344 This is an example of invalid combination that is hidden by the current code.
345 First, Left and Right could never appear in a pseudo class match.
346 (WebCore::CSSSelector::pseudoId):
347 (WebCore::CSSSelector::parsePseudoType):
348 (WebCore::appendPseudoTypeTailIfNecessary):
349 (WebCore::CSSSelector::selectorText):
351 (WebCore::CSSSelector::pseudoType):
352 (WebCore::CSSSelector::matchesPseudoElement):
353 (WebCore::CSSSelector::setValue):
354 (WebCore::CSSSelector::CSSSelector):
355 * css/PageRuleCollector.cpp:
356 (WebCore::checkPageSelectorComponents):
357 * css/SelectorChecker.cpp:
358 (WebCore::SelectorChecker::checkOne):
359 * css/SelectorPseudoTypeMap.h: Added.
360 * css/SelectorPseudoTypeMap.in: Added.
361 * css/makeSelectorPseudoTypeMap.py: Added.
362 (enumerablePseudoType):
363 (expand_ifdef_condition):
364 * cssjit/SelectorCompiler.cpp:
365 (WebCore::SelectorCompiler::addPseudoType):
367 2014-03-10 Enrica Casucci <enrica@apple.com>
369 iOS build fix after http://trac.webkit.org/changeset/165385
373 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
374 (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
376 2014-03-10 Daniel Bates <dabates@apple.com>
378 REGRESSION (r159218): FrameView::layout() should destroy TemporaryChange<LayoutPhase>
379 before destroying Ref<FrameView>
380 https://bugs.webkit.org/show_bug.cgi?id=130034
381 <rdar://problem/15664288>
383 Reviewed by Alexey Proskuryakov.
385 We should always destroy TemporaryChange<LayoutPhase> before destroying Ref<FrameView>
386 in FrameView::layout() so as to ensure that the FrameView exists when we restore the
387 original layout phase value.
389 The existing test fast/frames/crash-remove-iframe-during-object-beforeload.html covers
390 this change. Although you must run the test with Guard Malloc enabled (i.e. run-webkit-tests -r).
392 * page/FrameView.cpp:
393 (WebCore::FrameView::layout): Move construction of variable protect before the construction of
394 variable layoutPhaseRestorer. Additionally, add a period to the end of the comment associated
395 with variable protect.
397 2014-03-10 Zsolt Borbely <borbezs@inf.u-szeged.hu>
399 ASSERTION FAILED: span >= 1
400 https://bugs.webkit.org/show_bug.cgi?id=129148
402 Reviewed by Andreas Kling.
404 Set the value of span to 1 if the given number is too big or zero.
406 Test: fast/table/incorrect-colgroup-span-values.html
408 * html/HTMLTableColElement.cpp:
409 (WebCore::HTMLTableColElement::parseAttribute):
411 2014-03-10 Brent Fulgham <bfulgham@apple.com>
413 [Win] Pass environment to Pre-Build, Pre-Link, and Post-Build Stages.
414 https://bugs.webkit.org/show_bug.cgi?id=130023.
416 Reviewed by Dean Jackson.
418 * WebCore.vcxproj/WebCore.proj: Avoid trailing slashes in path values to
419 prevent escaping during later string substitution.
421 2014-03-10 Radu Stavila <stavila@adobe.com>
423 [CSS Regions] Hit-testing is not working properly inside scrollable regions
424 https://bugs.webkit.org/show_bug.cgi?id=130015
426 Reviewed by Antti Koivisto.
428 When hit-testing inside the flow thread's layer, the scrolled offset
429 of the current region must be taken into consideration.
431 Test: fast/regions/scrollable-regions-hit-testing-inside.html
433 * rendering/RenderLayer.cpp:
434 (WebCore::RenderLayer::calculateClipRects):
437 2014-03-10 Hans Muller <hmuller@adobe.com>
439 [CSS Shapes] SVG Image valued shape fails if root element's size is relative
440 https://bugs.webkit.org/show_bug.cgi?id=128983
442 Reviewed by Simon Fraser.
444 When creating a shape based on an Image, compute its dimensions using
445 RenderBoxModelObject::calculateImageIntrinsicDimensions(), then set the
446 ImageResource's containerSize, and then use imageForRenderer() to get the
447 image to be drawn. The first step resolves SVG Image relative sizes, the
448 second step creates and caches an SVGImageForContainer with the correct
449 containerSize, and the last step retrieves the SVGImageForContainer.
451 Test: fast/shapes/shape-outside-floats/shape-outside-relative-size-svg.html
453 * rendering/RenderBoxModelObject.h: Publicized calculateImageIntrinsicDimensions() and its enum.
454 * rendering/shapes/Shape.cpp:
455 (WebCore::Shape::createRasterShape):
456 * rendering/shapes/Shape.h:
457 * rendering/shapes/ShapeInfo.cpp:
458 (WebCore::getShapeImageAndRect):
459 (WebCore::ShapeInfo<RenderType>::computedShape):
461 2014-03-10 Darin Adler <darin@apple.com>
463 TextIterator: Use StringView and references rather than pointers
464 https://bugs.webkit.org/show_bug.cgi?id=129975
466 Reviewed by Anders Carlsson.
468 TextIterator refinements:
469 - Use StringView instead of deprecatedCharacters to point to characters within strings.
470 - Added TextIteratorCopyableText, a safe way to copy the current text of a TextIterator,
471 for use by WordAwareIterator.
472 - Removed m_shouldStop; iterators stop by setting m_positionNode to null, and there is no
473 need for a separate boolean to do the same thing.
474 - Got rid of all the boolean data members set based on the text iterator behavior; instead
475 store the behavior in a data member and check it directly.
476 - Changed most functions to use references rather than pointers.
477 - Small micro-optimizations, such as using fastGetAttribute rather than getAttribute.
478 - Switched to nullptr instead of 0 where appropriate.
479 - Removed unused functions.
480 - Cut down on use of abbreviations instead of words.
481 - Renamed data members and argument names for clarity.
482 - Split up assertions that needlessly asserted more than one thing in a single expression.
483 - Treat CDATASection just like other Text, since its text will be visible.
485 * editing/Editor.cpp:
486 (WebCore::Editor::advanceToNextMisspelling): Pass reference rather than pointer.
487 (WebCore::Editor::rangeOfString): Ditto.
488 (WebCore::Editor::countMatchesForText): Ditto.
489 * editing/TextCheckingHelper.cpp:
490 (WebCore::TextCheckingHelper::findFirstMisspelling): Ditto.
492 * editing/TextIterator.cpp:
493 (WebCore::depthCrossingShadowBoundaries): Take a reference rather than a pointer.
494 (WebCore::nextInPreOrderCrossingShadowBoundaries): Ditto.
495 (WebCore::fullyClipsContents): Ditto.
496 (WebCore::ignoresContainerClip): Ditto.
497 (WebCore::pushFullyClippedState): Ditto.
498 (WebCore::setUpFullyClippedStack): Ditto.
499 (WebCore::isRendererReplacedElement): Use references rather than pointers in the
500 implementation. Also use fastGetAttribute instead of getAttribute.
501 (WebCore::TextIteratorCopyableText::reset): Added.
502 (WebCore::TextIteratorCopyableText::set): Added.
503 (WebCore::TextIteratorCopyableText::appendToStringBuilder): Added.
504 (WebCore::TextIterator::TextIterator): Use more initialization rather than assignment.
505 Got rid of some local variables.
506 (WebCore::TextIterator::advance): Removed the m_shouldStop boolean, uneeded.
507 Many other improvements. Use isTextNode instead of nodeType.
508 (WebCore::hasVisibleTextNode): Changed this into a file-private helper function
509 instead of a member function.
510 (WebCore::TextIterator::handleTextNode): Used references and cut down on type casts.
511 Gave local variables clearer names.
512 (WebCore::TextIterator::handleTextBox): More of the same.
513 (WebCore::TextIterator::handleTextNodeFirstLetter): Ditto.
514 (WebCore::TextIterator::handleReplacedElement): Ditto.
515 (WebCore::shouldEmitTabBeforeNode): Ditto.
516 (WebCore::hasHeaderTag): Added.
517 (WebCore::shouldEmitNewlinesBeforeAndAfterNode): More of the same.
518 (WebCore::shouldEmitNewlineAfterNode): Ditto.
519 (WebCore::shouldEmitNewlineBeforeNode): Ditto.
520 (WebCore::shouldEmitExtraNewlineForNode): Ditto.
521 (WebCore::collapsedSpaceLength): Use StringImpl directly instead of using the
522 deprecatedCharacters function.
523 (WebCore::TextIterator::shouldRepresentNodeOffsetZero): More like above.
524 (WebCore::TextIterator::shouldEmitSpaceBeforeAndAfterNode): Ditto.
525 (WebCore::TextIterator::representNodeOffsetZero): Ditto.
526 (WebCore::TextIterator::handleNonTextNode): Ditto.
527 (WebCore::TextIterator::exitNode): Ditto.
528 (WebCore::TextIterator::emitCharacter): Changed to use the new copyable text class
529 instead of managing the single character buffer directly here.
530 (WebCore::TextIterator::emitText): Changed to take a Text& and use the copyable text
531 class. Added a FIXME about a mistake I noticed.
532 (WebCore::TextIterator::range): Streamlined and simplified a bit. Updated data
533 member names to be a bit clearer. This function never returned null before, but there
534 was a code path that looked like it would; I removed that.
535 (WebCore::TextIterator::node): Removed unneeded null checks; the range function will
536 never return a range of null or one with null for a start container.
537 (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): More
539 (WebCore::SimplifiedBackwardsTextIterator::advance): Reorganized a bit and removed
541 (WebCore::SimplifiedBackwardsTextIterator::handleTextNode): More of the same.
542 (WebCore::SimplifiedBackwardsTextIterator::handleFirstLetter): Ditto.
543 (WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement): Ditto.
544 (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode): Ditto.
545 (WebCore::SimplifiedBackwardsTextIterator::exitNode): Ditto.
546 (WebCore::SimplifiedBackwardsTextIterator::emitCharacter): Ditto.
547 (WebCore::SimplifiedBackwardsTextIterator::advanceRespectingRange): Ditto.
548 (WebCore::SimplifiedBackwardsTextIterator::range): Ditto.
549 (WebCore::CharacterIterator::CharacterIterator): Ditto.
550 (WebCore::CharacterIterator::range): Ditto. No need for ASSERT_NO_EXCEPTION.
551 (WebCore::CharacterIterator::advance): Ditto.
552 (WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator): Ditto.
553 (WebCore::BackwardsCharacterIterator::range): Ditto.
554 (WebCore::BackwardsCharacterIterator::advance): Ditto.
555 (WebCore::WordAwareIterator::WordAwareIterator): Ditto.
556 (WebCore::WordAwareIterator::advance): Use copyableText for m_previousText, fixing
557 the FIXME that I wrote in here before.
558 (WebCore::WordAwareIterator::text): Ditto.
559 (WebCore::containsKanaLetters): Changed to quickly return false when the pattern
560 is all Latin-1 rather than expanding to 16-bit just to check.
561 (WebCore::SearchBuffer::SearchBuffer): Iterate the target using the string operator[]
562 instead of using deprecatedCharacters.
563 (WebCore::SearchBuffer::append): Do the folding of quote marks and hyphens one character
564 at a time as we move characters into the buffer instead of in a separate loop.
565 (WebCore::TextIterator::rangeLength): Updated for changes eslwehere.
566 (WebCore::TextIterator::subrange): Ditto.
567 (WebCore::isInsideReplacedElement): Ditto. Also streamlined and removed unneeded null check.
568 (WebCore::TextIterator::rangeFromLocationAndLength): Updated for changes elsewhere and
569 removed unneeded ASSERT_NO_EXCEPTION.
570 (WebCore::plainText): Ditto.
571 (WebCore::collapsedToBoundary): Ditto.
572 (WebCore::findPlainText): Ditto.
574 * editing/TextIterator.h: Changed many functions to take references instead of pointers.
575 Added TextIteratorCopyableText, to represent the current text in a TextIterator in a form
576 that can be safely copied and used after further iteration. Reorganized member functions so
577 they are in the same order in all the classes. Changed TextIterator to use
578 TextIteratorCopyableText. Removed many unused functions, including:
579 - TextIterator::length
580 - TextIterator::deprecatedTextIteratorCharacters
581 - TextIterator::characterAt
582 - SimplifiedBackwardsTextIterator::length
583 - CharacterIterator::length
584 - CharacterIterator::string
585 - WordAwareIterator::length
586 - WordAwareIterator::range
588 * editing/VisibleSelection.cpp:
589 (WebCore::VisibleSelection::appendTrailingWhitespace): Pass reference rather than pointer.
590 Use text().length() instead of length(). Check atEnd() before using CharacterIterator, since
591 iterator member functions don't work when at the end.
592 * editing/VisibleUnits.cpp:
593 (WebCore::previousBoundary): Ditto.
594 (WebCore::nextBoundary): Ditto.
595 * editing/htmlediting.cpp:
596 (WebCore::visiblePositionForIndexUsingCharacterIterator): Ditto.
597 * page/ios/FrameIOS.mm:
598 (WebCore::Frame::indexCountOfWordPrecedingSelection): Ditto.
599 (WebCore::Frame::wordsInCurrentParagraph): Ditto.
601 2014-03-10 Martin Robinson <mrobinson@igalia.com>
603 [GTK] [CMake] Clean up library linking
604 https://bugs.webkit.org/show_bug.cgi?id=129782
606 Reviewed by Philippe Normand.
608 * PlatformGTK.cmake: Some files are duplicated on the source list of two convenience
609 libraries. Ensure that they are all compiled into WebCore instead of WebCorePlatformGTK.
610 Some simply need to be moved to WebCore from WebCorePlatformGTK. Don't try to link
611 WebCorePlatformGTK against WebCore -- convenience libraries should be able to save
612 their symbol resolution for the final linking step.
614 2014-03-10 Radu Stavila <stavila@adobe.com>
616 [CSS Regions] Scrolling regions with the mouse wheel only works properly if hovering over the region's padding
617 https://bugs.webkit.org/show_bug.cgi?id=129485
619 Reviewed by Andrei Bucur.
621 When searching for the region under the mouse pointer (to identify which region to scroll),
622 the localToAbsolute method must be called on the region container, not the region itself.
623 Also, when calling the offsetFromContainer method on a named flow fragment,
624 it must only take into consideration the border and padding of the fragment container,
625 not its scrolled offset.
627 Test: fast/regions/wheel-scrollable-single-region.html
629 * rendering/RenderBox.cpp:
630 (WebCore::RenderBox::scroll):
631 * rendering/RenderFlowThread.cpp:
632 * rendering/RenderFlowThread.h:
633 * rendering/RenderNamedFlowFragment.cpp:
634 (WebCore::RenderNamedFlowFragment::offsetFromContainer):
635 * rendering/RenderNamedFlowFragment.h:
636 * rendering/RenderNamedFlowThread.cpp:
637 (WebCore::RenderNamedFlowThread::fragmentFromAbsolutePointAndBox):
638 * rendering/RenderNamedFlowThread.h:
640 2014-03-10 Jinwoo Song <jinwoo7.song@samsung.com>
642 Remove unused dispatchStorageEvent() from StorageAreaSync
643 https://bugs.webkit.org/show_bug.cgi?id=129999
645 Reviewed by Andreas Kling.
647 dispatchStorageEvent() is not used anywhere.
649 * storage/StorageAreaSync.h: Remove dispatchStorageEvent().
651 2014-03-09 Alexey Proskuryakov <ap@apple.com>
655 * dom/KeyboardEvent.cpp: (WebCore::KeyboardEvent::KeyboardEvent):
657 2014-03-06 Alexey Proskuryakov <ap@apple.com>
659 [Mac] Don't perform a round-trip through WebProcess before interpreting key events
660 https://bugs.webkit.org/show_bug.cgi?id=129812
662 Reviewed by Darin Adler.
664 No significant behavior changes expected, except for Esc key processing, which now
665 dispatches a keypress before executing its default action.
667 * platform/KeypressCommand.h: Added.
668 (WebCore::KeypressCommand::KeypressCommand):
669 * GNUmakefile.list.am:
670 * WebCore.vcxproj/WebCore.vcxproj:
671 * WebCore.vcxproj/WebCore.vcxproj.filters:
672 * WebCore.xcodeproj/project.pbxproj:
673 Moved KeypressCommand from dom/KeyboardEvent.h to its own header, as it needed
674 in platform/ directory now.
676 * dom/KeyboardEvent.cpp:
677 (WebCore::KeyboardEvent::KeyboardEvent):
678 * dom/KeyboardEvent.h:
679 (WebCore::KeyboardEvent::handledByInputMethod):
680 (WebCore::KeyboardEvent::keypressCommands):
681 * platform/PlatformKeyboardEvent.h:
682 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
683 (WebCore::PlatformKeyboardEvent::handledByInputMethod):
684 (WebCore::PlatformKeyboardEvent::commands):
685 PlatformKeyboardEvent now carries results of interpreting the event by AppKit. This
686 is logically not much different from carrying charcode, and is similar to what Gtk
687 does for input methods.
688 KeyboardEvent already had keypress commands, which were added to it after construction.
689 It's still possible for WebKit1, while with WebKit2, they are provided at construction
690 time. The event now also has a boolean for whether IM handled it already.
692 2014-03-09 Zalan Bujtas <zalan@apple.com>
694 Subpixel rendering: Pass FloatSize boxsize to transform animations to support device pixel sizing.
695 https://bugs.webkit.org/show_bug.cgi?id=129985
697 Reviewed by Simon Fraser.
699 This is in preparation to stop passing integral positioned boxes to transform animations.
701 No change in behavior.
704 * platform/graphics/GraphicsLayer.h:
705 (WebCore::GraphicsLayer::addAnimation):
706 * platform/graphics/ca/GraphicsLayerCA.cpp:
707 (WebCore::getTransformFunctionValue):
708 (WebCore::GraphicsLayerCA::addAnimation):
709 (WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
710 (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
711 (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
712 (WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
713 * platform/graphics/ca/GraphicsLayerCA.h:
714 * rendering/RenderLayerBacking.cpp:
715 (WebCore::RenderLayerBacking::startTransition):
717 2014-03-08 Simon Fraser <simon.fraser@apple.com>
719 [iOS Wk2] Can't scroll after going back to page in page cache
720 https://bugs.webkit.org/show_bug.cgi?id=129989
721 <rdar://problem/16217588>
723 Reviewed by Dan Bernstein.
725 iOS has a special FrameLoader::forceLayoutWithoutRecalculatingStyle()
726 function that is called instead of FrameView::forceLayout(). This was unimplemented
727 for the WK2 FrameLoaderClient, so no layout was forced, with the result
728 that the contentSize was never updated and scrolling was broken.
730 Fix by renaming the client function to forceLayoutOnRestoreFromPageCache()
731 and having it return a bool to say whether the default forceLayout()
732 should be done. WK1 can then continue to have its custom behavior,
733 and Wk2 will simply do a forceLayout().
735 Also remove FrameLaoderClient::forceLayout(), which was never called.
737 * loader/EmptyClients.h:
738 * loader/FrameLoader.cpp:
739 (WebCore::FrameLoader::commitProvisionalLoad):
740 * loader/FrameLoaderClient.h:
742 2014-03-08 Simon Fraser <simon.fraser@apple.com>
744 [iOS WK2] Get position:fixed working slighlty better
745 https://bugs.webkit.org/show_bug.cgi?id=129988
747 Reviewed by Dan Bernstein.
749 On iOS we want to use the viewport-constrained visible rect, not
750 just the visible rect.
752 * page/scrolling/AsyncScrollingCoordinator.cpp:
753 (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
755 2014-03-07 Simon Fraser <simon.fraser@apple.com>
757 [iOS] Don't call scrollOffsetForFixedPosition a second time if we have no header and footer layers
758 https://bugs.webkit.org/show_bug.cgi?id=129912
760 Reviewed by Tim Horton.
762 Avoid extra work if we have no header or footer layers.
764 * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
765 (WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition):
767 2014-03-08 Zalan Bujtas <zalan@apple.com>
769 RenderElement::valueForLength() callers misuse bool parameter.
770 https://bugs.webkit.org/show_bug.cgi?id=129982
772 Reviewed by Andreas Kling.
774 Remove bogus RenderView* parameter.
776 * rendering/RenderBox.cpp:
777 (WebCore::RenderBox::computePercentageLogicalHeight):
778 * rendering/RenderElement.cpp:
779 (WebCore::RenderElement::repaintAfterLayoutIfNeeded):
781 2014-03-08 Jeremy Jones <jeremyj@apple.com>
783 Allow media element to supply the video layer after fullscreen transition has already begun.
784 https://bugs.webkit.org/show_bug.cgi?id=129870
786 Reviewed by Eric Carlson.
788 Instead of borrowing the videolayer from the HTMLMediaElement, WebVideoFullscreen now supplies a layer to HTMLMediaElement to fill in as needed and at the appropriate time.
790 This allows fullscreen even if the video layer hasn't yet been created. And in the future it allows MediaPlayer to supply other layers such as closed captions.
793 Remove exports related to borrowing and lend the video layer.
794 Add exports for supplying a layer to fullscreen and keepying the frame and gravity properties in sync.
796 * html/HTMLMediaElement.cpp:
797 Remove the concept of borrowing the platform layer.
798 Add the concept of a supplied m_videoFullscreenLayer, into which the media player can add layers.
799 When the m_videoFullscreenFrame is supplied, don't show the video layer inline any more.
800 Stash video layer properties in case the media player is not yet created.
802 (WebCore::HTMLMediaElement::HTMLMediaElement):
803 Initialize gravity to the default. Remove m_platformLayerBorrowed.
805 (WebCore::HTMLMediaElement::platformLayer):
806 When we have a m_videoFullscreenLayer, don't show video inline.
808 (WebCore::HTMLMediaElement::setVideoFullscreenLayer):
809 Pass along the m_videoFullscreenLayer to the MediaPlayer if available or just stash it for later.
811 (WebCore::HTMLMediaElement::createMediaPlayer):
812 Pass along video fullscreen properties that we may have accumulated before the MediaPlayer was created.
814 (WebCore::HTMLMediaElement::setVideoFullscreenGravity):
815 Stash the gravity property, pass it along to the media player if possible.
817 * html/HTMLMediaElement.h:
818 Remove concept of borrowing the video layer. Add properties for a supplied videoFullscreenLayer.
820 * platform/graphics/MediaPlayer.cpp:
821 (WebCore::MediaPlayer::setVideoFullscreenLayer):
822 Forward on to internal implementation.
824 (WebCore::MediaPlayer::setVideoFullscreenFrame):
825 Forward on to internal implementation.
827 (WebCore::MediaPlayer::setVideoFullscreenGravity):
828 Forward on to internal implementation.
830 * platform/graphics/MediaPlayer.h:
831 Add methods for video fullscreen Layer, Frame and Gravity.
833 * platform/graphics/MediaPlayerPrivate.h:
834 (WebCore::MediaPlayerPrivateInterface::setVideoFullscreenLayer):
835 Add default implementation.
837 (WebCore::MediaPlayerPrivateInterface::setVideoFullscreenFrame):
838 Add default implementation.
840 (WebCore::MediaPlayerPrivateInterface::setVideoFullscreenGravity):
841 Add default implementation.
843 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
844 Add support for fullscreen video layer, frame and gravity.
846 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
847 (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
848 Init m_videoFullscreenGravity.
850 (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
851 Apply cached properties once video layer is created and add to the fullscreen layer.
853 (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
854 Cache the property value. Add video layer right away available.
856 (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
857 Cache the property value. Apply to video layer right away if available.
859 (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity):
860 Cache the property value. Apply to video layer right away if available.
862 * platform/ios/WebVideoFullscreenControllerAVKit.mm:
863 Supply a fullscreen video layer to the WebVideoFullscreenModel and to the WebVideoFullscreenInterface.
865 (-[WebVideoFullscreenController enterFullscreen:]):
866 Supply a fullscreen video layer to the WebVideoFullscreenModel and to the WebVideoFullscreenInterface.
868 (-[WebVideoFullscreenController didExitFullscreen]):
869 Clean up the videoFullscreenLayer.
871 * platform/ios/WebVideoFullscreenInterface.h:
872 Remove methods related to lending the video layer.
874 * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
875 Rename WebAVPlayer layer to WebAVVideoLayer to match the AVKit name.
876 Remove functions related to lending the video layer.
877 Supply a layer directly to enterFullscreen.
879 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
880 (+[WebAVVideoLayer videoLayer]):
881 Rename WebAVPlayer layer to WebAVVideoLayer to match the AVKit name.
883 (-[WebAVVideoLayer setPlayerController:]):
884 Store the AVPlayerController to prevent AVKit's default behavior.
886 (-[WebAVVideoLayer setBounds:]):
887 Forward this onto the WebVideoFullscreenModel
889 (-[WebAVVideoLayer setVideoLayerGravity:]):
890 Forward this onto the WebVideoFullscreenModel
892 (-[WebAVVideoLayer videoLayerGravity]):
893 Forward this onto the WebVideoFullscreenModel
895 (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
896 Supply a video layer directly instead of relying on one being previously loaned.
898 (WebVideoFullscreenInterfaceAVKit::exitFullscreen):
899 Clean-up now assumes there is a video layer.
901 * platform/ios/WebVideoFullscreenModel.h:
902 Remove methods for borrowing and returning video layers.
903 Add methods for keeping video layer state in sync.
905 * platform/ios/WebVideoFullscreenModelMediaElement.h:
906 Remove methods for borrowing and returning video layers.
907 Add method for supplying a video fullscreen layer.
908 Add methods for keeping video layer state in sync.
910 * platform/ios/WebVideoFullscreenModelMediaElement.mm:
911 (WebVideoFullscreenModelMediaElement::setMediaElement):
912 Handle audio element case by setting hasVideo to false.
914 (WebVideoFullscreenModelMediaElement::setVideoFullscreenLayer):
915 Pass along the video fullscreen layer to the media element.
917 (WebVideoFullscreenModelMediaElement::setVideoLayerFrame):
918 Pass along the video layer frame to the media element.
920 (WebVideoFullscreenModelMediaElement::setVideoLayerGravity):
921 Pass along the video layer gravity to the media element.
923 2014-03-08 Jae Hyun Park <jaepark@webkit.org>
925 Clean up PlatformLayer.h
926 https://bugs.webkit.org/show_bug.cgi?id=129967
928 Reviewed by Martin Robinson.
930 * platform/graphics/PlatformLayer.h:
931 Remove duplicated declaration of PlatformLayer when using TextureMapper.
933 2014-03-08 Zalan Bujtas <zalan@apple.com>
935 Subpixel rendering: Simple compositing container layer (isSimpleContainerCompositingLayer) paints to wrong position.
936 https://bugs.webkit.org/show_bug.cgi?id=129861
938 Reviewed by Simon Fraser.
940 This patch ensures that both the simple and non-simple cases paint to the same position.
941 Simple compositing container layer codepath needs to take the fractional device pixel offset
942 into account when painting. Without the fractional value, the final paint rounding could push the
943 paint offset to a different position.
945 compositing top-left: 0px 0px.
946 fractional offset: 0.3px 0.3px
947 painting coords without offseting: 0px 0px
948 with offseting: 0.5px 0.5px
950 Tests: compositing/hidpi-simple-container-layer-on-device-pixel.html
953 * platform/graphics/GraphicsLayer.h:
954 (WebCore::GraphicsLayer::contentsRect):
955 (WebCore::GraphicsLayer::setContentsRect):
956 (WebCore::GraphicsLayer::contentsClippingRect):
957 (WebCore::GraphicsLayer::setContentsClippingRect):
958 * platform/graphics/ca/GraphicsLayerCA.cpp:
959 (WebCore::GraphicsLayerCA::setContentsRect):
960 (WebCore::GraphicsLayerCA::setContentsClippingRect):
961 (WebCore::GraphicsLayerCA::updateContentsRects):
962 * platform/graphics/ca/GraphicsLayerCA.h:
963 * rendering/RenderLayerBacking.cpp:
964 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
965 (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor):
966 (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
967 (WebCore::RenderLayerBacking::contentOffsetInCompostingLayer):
968 (WebCore::RenderLayerBacking::backgroundBoxForPainting):
969 * rendering/RenderLayerBacking.h:
971 2014-03-08 Oliver Hunt <oliver@apple.com>
973 SerializedScriptValue may move Identifiers between worlds
974 https://bugs.webkit.org/show_bug.cgi?id=129979
976 Reviewed by Andreas Kling.
978 Test: fast/workers/worker-copy-shared-blob-url.html
980 Don't use Strings to store blob URLs as String's may be Identifiers
981 and they can only exist in one world/thread at a time.
983 * Modules/indexeddb/IDBObjectStore.cpp:
984 (WebCore::IDBObjectStore::put):
985 * bindings/js/SerializedScriptValue.cpp:
986 (WebCore::CloneDeserializer::deserializeString):
987 (WebCore::SerializedScriptValue::addBlobURL):
988 (WebCore::SerializedScriptValue::SerializedScriptValue):
989 * bindings/js/SerializedScriptValue.h:
991 2014-03-07 Timothy Hatcher <timothy@apple.com>
993 Load source maps and their resources asynchronously.
995 https://bugs.webkit.org/show_bug.cgi?id=112071
997 Reviewed by Joseph Pecoraro.
999 * inspector/InspectorPageAgent.cpp:
1000 (WebCore::InspectorPageAgent::buildObjectForFrameTree):
1001 Honor the hiddenFromInspector flag.
1003 * inspector/InspectorResourceAgent.cpp:
1004 (WebCore::InspectorResourceAgent::willSendRequest):
1005 (WebCore::InspectorResourceAgent::markResourceAsCached):
1006 (WebCore::InspectorResourceAgent::didReceiveResponse):
1007 (WebCore::InspectorResourceAgent::didReceiveData):
1008 (WebCore::InspectorResourceAgent::didFinishLoading):
1009 (WebCore::InspectorResourceAgent::didFailLoading):
1010 (WebCore::InspectorResourceAgent::replayXHR):
1011 (WebCore::InspectorResourceAgent::loadResource):
1012 * inspector/InspectorResourceAgent.h:
1013 Honor the hiddenFromInspector flag by keeping track of
1014 hidden identifiers in a HashSet.
1016 * inspector/protocol/Network.json:
1017 (Network.loadResource): Added.
1019 * platform/network/ResourceRequestBase.h:
1020 (WebCore::ResourceRequestBase::hiddenFromInspector): Added.
1021 (WebCore::ResourceRequestBase::setHiddenFromInspector): Added.
1022 (WebCore::ResourceRequestBase::ResourceRequestBase):
1023 Add a flag to hide the request from the Inspector.
1025 * xml/XMLHttpRequest.cpp:
1026 (WebCore::XMLHttpRequest::XMLHttpRequest):
1027 (WebCore::XMLHttpRequest::sendForInspector): Added.
1028 (WebCore::XMLHttpRequest::sendForInspectorXHRReplay): Renamed.
1029 (WebCore::XMLHttpRequest::createRequest):
1030 * xml/XMLHttpRequest.h:
1031 Make Inspector loads allow cross-origins and hide their request
1032 from the Inspector itself.
1034 2014-03-07 Tim Horton <timothy_horton@apple.com>
1037 https://bugs.webkit.org/show_bug.cgi?id=129600
1038 <rdar://problem/15260216>
1040 Reviewed by Anders Carlsson.
1043 * platform/MIMETypeRegistry.cpp:
1044 (WebCore::initializeSupportedImageMIMETypes):
1045 (WebCore::initializePDFMIMETypes):
1046 (WebCore::initializePostScriptMIMETypes):
1047 (WebCore::initializeMIMETypeRegistry):
1048 (WebCore::MIMETypeRegistry::getPDFMIMETypes):
1049 * platform/MIMETypeRegistry.h:
1050 Split PDF and PostScript MIME types, so WebKit2 can retrieve just the PDF ones
1051 without PostScript included.
1053 2014-03-07 Myles C. Maxfield <mmaxfield@apple.com>
1055 Comment in RenderStyle is no longer accurate
1056 https://bugs.webkit.org/show_bug.cgi?id=129956
1058 Reviewed by Simon Fraser.
1060 RenderStyle::createStyleInheritingFromPseudoStyle was moved from RenderImage. Before it
1061 was moved, there was an image-specific comment in the function. However, that comment
1062 is both irrelevant to RenderStyle, and incorrect as the function is necessary for
1063 RenderQuotes as well.
1065 No new tests are necessary because there is no behavior change.
1067 * rendering/style/RenderStyle.cpp:
1068 (WebCore::RenderStyle::createStyleInheritingFromPseudoStyle):
1070 2014-03-07 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
1072 [WebRTC] Throw SYNTAX_ERROR when maxRetransmits and maxRetransmitTime are both set in RTCDataChannelInit
1073 https://bugs.webkit.org/show_bug.cgi?id=129894
1075 Reviewed by Eric Carlson.
1077 Existing test was updated.
1079 * Modules/mediastream/RTCDataChannel.cpp:
1080 (WebCore::RTCDataChannel::create):
1082 2014-03-07 Benjamin Poulain <bpoulain@apple.com>
1084 Fix the regression introduced by r165288
1085 https://bugs.webkit.org/show_bug.cgi?id=129934
1087 Reviewed by Ryosuke Niwa.
1089 * page/DOMWindow.cpp:
1090 (WebCore::DOMWindow::scrollX):
1091 (WebCore::DOMWindow::scrollY):
1092 We need to return the new value after layout, not the value from the dirty tree.
1094 2014-03-07 Benjamin Poulain <benjamin@webkit.org>
1096 Traversal failure in a direct adjacent chain with tail backtracking lacks the path to clear the tail
1097 https://bugs.webkit.org/show_bug.cgi?id=129863
1099 Reviewed by Gavin Barraclough.
1101 Direct adjacent backtracking use the stack to push the backtracking entry point and recover from there.
1102 In case of traversal failure, their is no point in recovering from the indirect adjancent entry point and
1103 we should clear entry point from the stack (which is the purpose of the tail).
1105 The adjancent tail was missing the part for clearing the stack in one case.
1107 The case with adjancent backtracking inside descendant backtracing was doing everything right. This patch
1108 generalize this code and the correct tail is fully generated by generateAdjacentBacktrackingTail().
1110 JumpToClearAdjacentDescendantTail becomes JumpToClearAdjacentTail, and this new backtracking state is added
1111 to the missing traversal action.
1113 Test: fast/selectors/long-adjacent-backtracking.html
1115 * cssjit/SelectorCompiler.cpp:
1116 (WebCore::SelectorCompiler::solveBacktrackingAction):
1117 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
1118 (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
1119 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
1120 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateBacktrackingTailsIfNeeded):
1122 2014-03-07 Andreas Kling <akling@apple.com>
1124 [Mac] Notify system malloc of fake memory pressure.
1125 <https://webkit.org/b/129908>
1127 After fixing the leak in r165252, I was surprised to find that it didn't
1128 show up on memory test bots. It turns out that while the memory is now
1129 getting freed, the system malloc implementation doesn't actually release
1130 pages back to the OS until there is memory pressure.
1132 Since we are just faking the memory pressure on bots, we have to let
1133 system malloc in on the fun, so we can get representative numbers.
1134 With this change, we should finally see the effect of not leaking the
1135 URLRequest object tree.
1137 Reviewed by Anders Carlsson.
1139 * platform/mac/MemoryPressureHandlerMac.mm:
1140 (WebCore::MemoryPressureHandler::install):
1142 Tell system malloc that we are under fake memory pressure.
1144 2014-03-07 Benjamin Poulain <bpoulain@apple.com>
1146 [iOS] WebKit1 scroll position is incorrect
1147 https://bugs.webkit.org/show_bug.cgi?id=129905
1149 Reviewed by Simon Fraser.
1151 * page/DOMWindow.cpp:
1152 (WebCore::DOMWindow::scrollX):
1153 (WebCore::DOMWindow::scrollY):
1154 A new optimization was avoiding layout if the position is zero. This was using the scrollX/Y instead
1155 of actualScrollX/Y which caused us to always bail out instead of returning the value to JavaScript.
1157 * platform/ScrollView.h:
1158 (WebCore::ScrollView::actualScrollX):
1159 (WebCore::ScrollView::actualScrollY):
1160 (WebCore::ScrollView::actualScrollPosition):
1161 This was accidentally changed to the iOS compat document visible rect at some point.
1163 2014-03-07 Adenilson Cavalcanti <cavalcantii@gmail.com>
1165 Remove unused StdDeviation from Drop shadow effect
1166 https://bugs.webkit.org/show_bug.cgi?id=129891
1168 Reviewed by Dirk Schulze.
1170 No new tests, no change on behavior.
1172 * platform/graphics/filters/FEDropShadow.h:
1174 2014-03-07 Brent Fulgham <bfulgham@apple.com>
1176 Correct out-of-band track selection logic.
1177 https://bugs.webkit.org/show_bug.cgi?id=129900
1179 Reviewed by Jer Noble.
1181 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1182 (WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState): Correct test to
1185 2014-03-07 Bear Travis <betravis@adobe.com>
1187 [CSS Shapes] Correctly serialize ellipse positions
1188 https://bugs.webkit.org/show_bug.cgi?id=129700
1190 Reviewed by Dirk Schulze.
1192 Updating ellipse serialization to be in line with
1193 the CSS Shapes spec. Positions should serialize as
1194 2 or 4-value positions, converting keywords to
1195 percentages where possible. This uses the same method
1196 as circle position serialization (bug 129404).
1198 Updated existing parsing tests.
1200 * css/CSSBasicShapes.cpp:
1201 (WebCore::CSSBasicShapeEllipse::cssText): Use the
1202 normalization / serialization helpers for shape position.
1204 2014-03-07 Brian Burg <bburg@apple.com>
1206 Unreviewed, rebaseline run-binding-tests results after r165242.
1208 * bindings/scripts/test/JS/JSTestObj.cpp:
1209 (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
1210 * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1211 (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
1213 2014-03-07 Darin Adler <darin@apple.com>
1215 Remove non-working optimization that was attempted on iOS only
1216 https://bugs.webkit.org/show_bug.cgi?id=129595
1217 <rdar://problem/15798825>
1219 Reviewed by Sam Weinig.
1221 Code in GCController tried to optimize cases where the controller
1222 was used, but no JavaScript had been run in the current process.
1223 The code was never effective, and was iOS-only. Another way to fix
1224 the problem would be to change the code so it works, and if we do
1225 that we should do it for all platforms, not just iOS.
1227 * bindings/js/GCController.cpp:
1228 (WebCore::GCController::garbageCollectNow): Remove check of
1229 JSDOMWindow::commonVMExists, since it's called just after a call
1230 to JSDOMWindow::commonVM, which will create it as a side effect.
1231 (WebCore::GCController::releaseExecutableMemory): Ditto.
1233 * bindings/js/JSDOMWindowBase.cpp:
1234 (WebCore::JSDOMWindowBase::commonVM): Removed iOS-specific code
1235 that pulled the commonVM global out into another function so we
1236 can check for its existence without creating it as a side effect.
1238 * bindings/js/JSDOMWindowBase.h: Ditto.
1240 2014-03-07 Bem Jones-Bey <bjonesbe@adobe.com>
1242 [CSS Shapes] inset does not properly clamp large corner radii
1243 https://bugs.webkit.org/show_bug.cgi?id=129726
1245 Reviewed by Dirk Schulze.
1247 Make sure that radii that are larger than 50% of the associated shape
1248 dimension (height or width) are properly reduced the same way as
1249 border-radius radii are.
1251 Test: fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-large-radius.html
1253 * rendering/shapes/Shape.cpp:
1254 (WebCore::ensureRadiiDoNotOverlap): Drive by style fix.
1255 (WebCore::Shape::createShape): Scale radii the same way as border
1257 * platform/graphics/FloatRoundedRect.h:
1258 (WebCore::calcBorderRadiiConstraintScaleFor): Move border radii
1259 constraint calculation function out so that it can be shared by
1261 * rendering/style/RenderStyle.cpp:
1262 (WebCore::RenderStyle::getRoundedBorderFor): Call renamed scale function.
1264 2014-03-07 Carlos Garcia Campos <cgarcia@igalia.com>
1266 [GST] Set name to several timeout sources
1267 https://bugs.webkit.org/show_bug.cgi?id=129878
1269 Reviewed by Philippe Normand.
1271 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1272 (WebCore::MediaPlayerPrivateGStreamer::videoChanged):
1273 (WebCore::MediaPlayerPrivateGStreamer::videoCapsChanged):
1274 (WebCore::MediaPlayerPrivateGStreamer::audioChanged):
1275 (WebCore::MediaPlayerPrivateGStreamer::textChanged):
1276 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
1277 (WebCore::MediaPlayerPrivateGStreamerBase::volumeChanged):
1278 (WebCore::MediaPlayerPrivateGStreamerBase::muteChanged):
1280 2014-03-07 Carlos Garcia Campos <cgarcia@igalia.com>
1282 [GTK] Timeout sources not correctly removed
1283 https://bugs.webkit.org/show_bug.cgi?id=129877
1285 Reviewed by Philippe Normand.
1287 Set source ID variables to 0 after removing the sources from the
1288 context. Also give a name to the sources.
1290 * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
1291 (WebCore::TrackPrivateBaseGStreamer::disconnect):
1292 (WebCore::TrackPrivateBaseGStreamer::activeChanged):
1293 (WebCore::TrackPrivateBaseGStreamer::tagsChanged):
1294 (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfActiveChanged):
1296 2014-03-07 Gergo Balogh <gbalogh.u-szeged@partner.samsung.com>
1299 https://bugs.webkit.org/show_bug.cgi?id=129866
1301 Reviewed by Csaba Osztrogonác.
1303 * platform/audio/FFTFrame.h:
1304 * platform/audio/FFTFrameStub.cpp:
1305 * platform/audio/mkl/FFTFrameMKL.cpp: Removed, it is never used.
1307 2014-03-07 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
1309 [WebRTC] Adding getConfiguration method to RTCPeerConnection
1310 https://bugs.webkit.org/show_bug.cgi?id=129845
1312 Reviewed by Eric Carlson.
1314 Test: fast/mediastream/RTCPeerConnection-getConfiguration.html
1317 * DerivedSources.make:
1318 * GNUmakefile.list.am:
1319 * Modules/mediastream/RTCConfiguration.idl: Added.
1320 * Modules/mediastream/RTCIceServer.idl: Added.
1321 * Modules/mediastream/RTCPeerConnection.cpp:
1322 (WebCore::RTCPeerConnection::RTCPeerConnection):
1323 (WebCore::RTCPeerConnection::updateIce):
1324 (WebCore::RTCPeerConnection::getConfiguration):
1325 * Modules/mediastream/RTCPeerConnection.h:
1326 * Modules/mediastream/RTCPeerConnection.idl:
1328 2014-03-07 Jinwoo Song <jinwoo7.song@samsung.com>
1330 Optimize collectionLast() and collectionTraverseBackward() in LiveNodeList
1331 https://bugs.webkit.org/show_bug.cgi?id=129775
1333 Reviewed by Ryosuke Niwa.
1335 Check the LiveNodeList type if it is HTMLTagNodeListType and ClassNodeListType then
1336 apply inlined matching methods for each type.
1338 * dom/LiveNodeList.cpp:
1339 (WebCore::lastMatchingElement): Added.
1340 (WebCore::previousMatchingElement): Added.
1341 (WebCore::traverseMatchingElementsBackward): Added.
1342 (WebCore::LiveNodeList::collectionLast): Apply lastMatchingElement() with LiveNodeList type.
1343 (WebCore::LiveNodeList::collectionTraverseBackward): Apply traverseMatchingElementsBackward()
1344 with LiveNodeList type.
1346 2014-03-06 Andreas Kling <akling@apple.com>
1348 WebCoreResourceHandleAsOperationQueueDelegate over-retains NSURLRequest.
1349 <https://webkit.org/b/129862>
1351 Don't retain the pointer before assigning it to a RetainPtr, since that
1352 will cause the object to leak.
1354 Reviewed by Alexey Proskuryakov.
1356 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
1357 (-[WebCoreResourceHandleAsOperationQueueDelegate continueWillSendRequest:]):
1359 2014-03-06 Dan Bernstein <mitz@apple.com>
1361 Don’t copy WebInputs.json into the framework.
1363 * WebCore.xcodeproj/project.pbxproj: Removed WebInputs.json from the Copy Bundle Resources
1364 build phase of the WebCore target.
1366 2014-03-06 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
1368 [WebRTC] Updating RTCPeerConnection.idl
1369 https://bugs.webkit.org/show_bug.cgi?id=129804
1371 Reviewed by Eric Carlson.
1373 Some methods signatures were wrong, marking some arguments as optional when they are mandatory.
1375 Existing tests were updated.
1377 * Modules/mediastream/RTCPeerConnection.cpp:
1378 (WebCore::RTCPeerConnection::getStats):
1379 * Modules/mediastream/RTCPeerConnection.h:
1380 * Modules/mediastream/RTCPeerConnection.idl:
1381 * Modules/mediastream/RTCStatsRequestImpl.cpp:
1382 (WebCore::RTCStatsRequestImpl::create):
1383 (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
1384 (WebCore::RTCStatsRequestImpl::requestFailed):
1385 * Modules/mediastream/RTCStatsRequestImpl.h:
1386 * platform/mediastream/RTCStatsRequest.h:
1388 2014-03-06 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
1390 [WebRTC] Updating RTCIceServer to match spec
1391 https://bugs.webkit.org/show_bug.cgi?id=129844
1393 Reviewed by Eric Carlson.
1395 Move RTCIceServer from RTCConfiguration to its own file.
1397 * Modules/mediastream/RTCPeerConnection.cpp:
1398 (WebCore::validateIceServerURL):
1399 (WebCore::processIceServer):
1400 * platform/mediastream/RTCConfiguration.h:
1401 (WebCore::RTCConfiguration::iceServers):
1402 * platform/mediastream/RTCIceServer.h: Added.
1404 2014-03-06 Hyowon Kim <hw1008.kim@samsung.com>
1406 [EFL] Move EvasGL classes from WebKit to WebCore namespace.
1407 https://bugs.webkit.org/show_bug.cgi?id=129797
1409 Reviewed by Gyuyoung Kim.
1411 Though EvasGLContext and EvasGLSurface files were moved from WebKit2/UIProcess/API/efl/
1412 to WebCore/platform/graphics/efl/, they are still in WebKit namespace.
1413 Patch for namespace changes.
1415 * platform/graphics/efl/EvasGLContext.cpp:
1416 * platform/graphics/efl/EvasGLContext.h:
1417 * platform/graphics/efl/EvasGLSurface.cpp:
1418 * platform/graphics/efl/EvasGLSurface.h:
1420 2014-03-06 Brian Burg <bburg@apple.com>
1422 CodeGeneratorJS.pm doesn't need to add spaces between consecutive closing template brackets
1423 https://bugs.webkit.org/show_bug.cgi?id=129836
1425 Reviewed by Andreas Kling.
1427 * bindings/scripts/CodeGeneratorJS.pm:
1428 (GenerateParametersCheck):
1429 (GetNativeVectorInnerType):
1430 (GetSVGPropertyTypes):
1432 2014-03-06 Jinwoo Song <jinwoo7.song@samsung.com>
1434 Remove unused method from BatteryController
1435 https://bugs.webkit.org/show_bug.cgi?id=129850
1437 Reviewed by Gyuyoung Kim.
1439 isActive() method is never called anywhere.
1441 * Modules/battery/BatteryController.cpp:
1442 * Modules/battery/BatteryController.h:
1444 2014-03-06 Pratik Solanki <psolanki@apple.com>
1446 [iOS] Crash on launch with website restrictions enabled
1447 https://bugs.webkit.org/show_bug.cgi?id=129854
1448 <rdar://problem/16207016>
1450 Reviewed by Simon Fraser.
1452 * platform/mac/ContentFilterMac.mm:
1453 (WebCore::ContentFilter::ContentFilter): Initialize m_neFilterSourceQueue so that we don't
1454 crash in the dtor due to garbage value in the field.
1456 2014-03-06 Simon Fraser <simon.fraser@apple.com>
1458 Minor optimization in ScrollingTreeScrollingNodeMac
1459 https://bugs.webkit.org/show_bug.cgi?id=129848
1461 Reviewed by Dean Jackson.
1463 No need to call scrollOffsetForFixedPosition() again if we don't have header
1466 * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
1467 (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
1469 2014-03-06 Mark Lam <mark.lam@apple.com>
1471 XMLHttpRequest: status and statusText throw DOM Exception 11 when the state is UNSENT or OPENED.
1472 https://bugs.webkit.org/show_bug.cgi?id=45994
1476 Re-landing r161051 (originally by Ryosuke Niwa, reviewed by Alexey Proskuryakov)
1477 since https://bugs.webkit.org/show_bug.cgi?id=126219 is no longer an issue.
1479 * xml/XMLHttpRequest.cpp:
1480 (WebCore::XMLHttpRequest::status):
1481 (WebCore::XMLHttpRequest::statusText):
1482 * xml/XMLHttpRequest.h:
1483 * xml/XMLHttpRequest.idl:
1485 2014-03-06 Brent Fulgham <bfulgham@apple.com>
1487 Revise Out-of-band VTT support for better integration with AVFoundation engine
1488 https://bugs.webkit.org/show_bug.cgi?id=129749
1489 <rdar://problem/16215701>
1491 Reviewed by Eric Carlson.
1493 Revise the platform handling of out-of-band text tracks so that we can keep AVFoundation
1494 informed of track selections we make. Use a dummy out-of-band child of the existing text
1495 track classes to avoid code duplication.
1497 * WebCore.xcodeproj/project.pbxproj: Add new OutOfBandTextTrackPrivateAVF.h file.
1498 * html/HTMLMediaElement.cpp:
1499 (WebCore::HTMLMediaElement::parseAttribute): Notify player when OOB tracks change.
1500 (WebCore::HTMLMediaElement::outOfBandTrackSources): Also pass track mode to platform backend.
1501 * html/track/TextTrack.cpp:
1502 (WebCore::TextTrack::platformTextTrack): Also pass track mode to constructor.
1503 * html/track/TrackBase.cpp:
1504 (WebCore::TrackBase::TrackBase): Move ownership of track unique identifier to this base class.
1505 * html/track/TrackBase.h:
1506 (WebCore::TrackBase::uniqueId): Ditto.
1507 * platform/graphics/MediaPlayer.cpp:
1508 (WebCore::MediaPlayer::notifyTrackModeChanged): Added stub to pass message to platform player.
1509 * platform/graphics/MediaPlayer.h:
1510 * platform/graphics/MediaPlayerPrivate.h:
1511 (WebCore::MediaPlayerPrivateInterface::notifyTrackModeChanged): Stub for most platforms.
1512 * platform/graphics/PlatformTextTrack.h:
1513 (WebCore::PlatformTextTrack::create): Update for revised constructor (with 'mode' argument).
1514 (WebCore::PlatformTextTrack::createOutOfBand): Ditto.
1515 (WebCore::PlatformTextTrack::mode): Added.
1516 (WebCore::PlatformTextTrack::captionMenuOffItem): Use revised constructor arguments.
1517 (WebCore::PlatformTextTrack::captionMenuAutomaticItem): Ditto.
1518 (WebCore::PlatformTextTrack::PlatformTextTrack): Ditto.
1519 * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h: Change predicate to return enum indicating the category
1520 of track (out-of-band, legacy closed caption, or in band).
1521 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
1522 (WebCore::MediaPlayerPrivateAVFoundation::notifyTrackModeChanged): Added.
1523 * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h: Override predicate to return category enum.
1524 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: Revise to use new category enum.
1525 * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h: Override predicate to return category enum.
1526 that this is NOT an out-of-band track.
1527 * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h: Ditto.
1528 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
1529 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1530 (WebCore::MediaPlayerPrivateAVFoundationObjC::notifyTrackModeChanged): Added implementation.
1531 (WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions): Revise to handle out-of-band
1533 (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Modify to inform AVFoundation about any
1534 out-of-band tracks we've selected.
1535 (WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState): Added.
1536 * platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h: Added.
1537 (WebCore::OutOfBandTextTrackPrivateAVF::create):
1538 (WebCore::OutOfBandTextTrackPrivateAVF::processCue):
1539 (WebCore::OutOfBandTextTrackPrivateAVF::resetCueValues):
1540 (WebCore::OutOfBandTextTrackPrivateAVF::mediaSelectionOption):
1541 (WebCore::OutOfBandTextTrackPrivateAVF::OutOfBandTextTrackPrivateAVF):
1542 (WebCore::OutOfBandTextTrackPrivateAVF::processCueAttributes):
1543 * platform/graphics/ios/InbandTextTrackPrivateAVFIOS.h: Override predicate to indicate
1544 that this is NOT an out-of-band track.
1545 * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
1546 (WebCore::MediaPlayerPrivateIOS::setSelectedTextTrack): Correct typo in logging text.
1548 2014-03-06 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
1550 [WebRTC] Updating createOffer and createAnswer methods to match WebRTC editor's draft of 01/27/2014
1551 https://bugs.webkit.org/show_bug.cgi?id=129484
1553 Reviewed by Eric Carlson.
1555 According to the spec, createOffer and createAnswer will no longer have MediaConstraints as an argument,
1556 instead they will have RTCOfferOptions and RTCOfferAnswerOptions, respectively.
1558 Existing tests were updated.
1561 * GNUmakefile.list.am:
1562 * Modules/mediastream/RTCOfferAnswerOptions.cpp: Added.
1563 * Modules/mediastream/RTCOfferAnswerOptions.h: Added.
1564 * Modules/mediastream/RTCPeerConnection.cpp:
1565 (WebCore::RTCPeerConnection::createOffer):
1566 (WebCore::RTCPeerConnection::createAnswer):
1567 * Modules/mediastream/RTCPeerConnection.h:
1568 * Modules/mediastream/RTCPeerConnection.idl:
1569 * platform/mediastream/RTCPeerConnectionHandler.h:
1570 * platform/mock/RTCPeerConnectionHandlerMock.cpp:
1571 (WebCore::RTCPeerConnectionHandlerMock::createOffer):
1572 (WebCore::RTCPeerConnectionHandlerMock::createAnswer):
1573 * platform/mock/RTCPeerConnectionHandlerMock.h:
1575 2014-03-06 Brian Burg <bburg@apple.com>
1577 Web Replay: premature release() of PassRefPtr in InspectorReplayAgent
1578 https://bugs.webkit.org/show_bug.cgi?id=129827
1580 Reviewed by Timothy Hatcher.
1582 * inspector/InspectorReplayAgent.cpp:
1583 (WebCore::InspectorReplayAgent::didCreateFrontendAndBackend):
1585 2014-03-06 Benjamin Poulain <bpoulain@apple.com>
1587 [iOS] Do not compile fake mouse event handling when iOS Touch Events are enabled
1588 https://bugs.webkit.org/show_bug.cgi?id=129725
1590 Reviewed by Dan Bernstein.
1592 Bug <rdar://problem/16218636>. The code is #ifdef'ed out to avoid setting up useless objects
1593 and to avoid future mistake.
1595 * page/EventHandler.cpp:
1596 (WebCore::EventHandler::EventHandler):
1597 (WebCore::EventHandler::~EventHandler):
1598 (WebCore::EventHandler::clear):
1599 (WebCore::EventHandler::handleMousePressEvent):
1600 (WebCore::EventHandler::startAutoHideCursorTimer):
1601 (WebCore::EventHandler::handleMouseMoveEvent):
1602 (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
1603 (WebCore::EventHandler::dispatchFakeMouseMoveEventSoonInQuad):
1604 * page/EventHandler.h:
1606 2014-03-06 Pratik Solanki <psolanki@apple.com>
1608 Unreviewed. iOS build fix after r165199.
1610 * rendering/RootInlineBox.cpp:
1612 2014-03-06 Benjamin Poulain <bpoulain@apple.com>
1614 [iOS] Rename the actualVisibleXXXRect to unobscuredContentRect for consistency
1615 https://bugs.webkit.org/show_bug.cgi?id=129773
1617 Reviewed by Simon Fraser.
1619 * dom/TreeScope.cpp:
1620 (WebCore::nodeFromPoint):
1621 * platform/ScrollView.cpp:
1622 (WebCore::ScrollView::visibleContentRectInternal):
1623 * platform/ScrollView.h:
1624 * platform/ios/ScrollViewIOS.mm:
1625 (WebCore::ScrollView::unoscuredContentRect):
1626 * platform/ios/wak/WAKScrollView.h:
1627 * platform/ios/wak/WAKScrollView.mm:
1628 (-[WAKScrollView unoscuredContentRect]):
1629 (-[WAKScrollView description]):
1630 * rendering/RenderLayer.cpp:
1631 (WebCore::RenderLayer::scrollRectToVisible):
1633 2014-03-05 Oliver Hunt <oliver@apple.com>
1635 Support caching of custom setters
1636 https://bugs.webkit.org/show_bug.cgi?id=129519
1638 Reviewed by Filip Pizlo.
1640 Add forwarding header
1642 Tests: js/regress/assign-custom-setter-polymorphic.html
1643 js/regress/assign-custom-setter.html
1645 * ForwardingHeaders/jit/SpillRegistersMode.h: Added.
1647 2014-03-05 Jon Honeycutt <jhoneycutt@apple.com>
1649 Invalid cast in WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients()
1651 <https://bugs.webkit.org/show_bug.cgi?id=121887>
1652 <rdar://problem/15073043>
1654 Clang appears to be optimizing out a branch in RenderObject::node()
1655 when compiling RenderLayer::FilterInfo::updateReferenceFilterClients().
1656 We'll work around this by factoring out the code in question into a
1657 separate member function marked NEVER_INLINE.
1659 No test possible due to <https://bugs.webkit.org/show_bug.cgi?id=129757>.
1661 Reviewed by David Kilzer.
1663 * rendering/RenderLayerFilterInfo.cpp:
1664 (WebCore::RenderLayer::FilterInfo::layerElement):
1665 Code moved from updateReferenceFilterClients(). Returns the Element*
1667 (WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients):
1670 * rendering/RenderLayerFilterInfo.h:
1671 Declared layerElement().
1673 2014-03-06 Joseph Pecoraro <pecoraro@apple.com>
1675 Web Inspector: Expose the console object in JSContexts to interact with Web Inspector
1676 https://bugs.webkit.org/show_bug.cgi?id=127944
1678 Reviewed by Geoffrey Garen.
1680 Covered by existing tests.
1683 * DerivedSources.cpp:
1684 * DerivedSources.make:
1685 * ForwardingHeaders/runtime/ConsoleClient.h: Added.
1686 * ForwardingHeaders/runtime/ConsoleTypes.h: Renamed from Source/WebCore/ForwardingHeaders/inspector/ConsoleTypes.h.
1687 * GNUmakefile.list.am:
1688 * PlatformGTK.cmake:
1690 * WebCore.vcxproj/WebCore.vcxproj:
1691 * WebCore.vcxproj/WebCore.vcxproj.filters:
1692 * WebCore.xcodeproj/project.pbxproj:
1693 * bindings/gobject/GNUmakefile.am:
1694 Update build systems.
1696 * page/Console.cpp: Removed.
1697 * page/Console.h: Removed.
1698 * page/Console.idl: Removed.
1699 * page/DOMWindow.cpp:
1700 (WebCore::DOMWindow::~DOMWindow):
1701 (WebCore::DOMWindow::resetDOMWindowProperties):
1703 (WebCore::DOMWindow::defaultStatus):
1704 * page/DOMWindow.idl:
1705 Removed the old IDL generated Console object on window.
1707 * page/PageConsole.cpp:
1708 (WebCore::PageConsole::shouldPrintExceptions):
1709 (WebCore::PageConsole::setShouldPrintExceptions):
1710 (WebCore::PageConsole::mute):
1711 (WebCore::PageConsole::unmute):
1712 (WebCore::PageConsole::messageWithTypeAndLevel):
1713 (WebCore::PageConsole::count):
1714 (WebCore::PageConsole::profile):
1715 (WebCore::PageConsole::profileEnd):
1716 (WebCore::PageConsole::time):
1717 (WebCore::PageConsole::timeEnd):
1718 (WebCore::PageConsole::timeStamp):
1719 (WebCore::PageConsole::group):
1720 (WebCore::PageConsole::groupCollapsed):
1721 (WebCore::PageConsole::groupEnd):
1722 (WebCore::PageConsole::clearProfiles):
1723 * page/PageConsole.h:
1724 Move the handling of Console object into PageConsole.
1726 * bindings/js/ScriptCachedFrameData.cpp:
1727 (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
1728 (WebCore::ScriptCachedFrameData::restore):
1729 * bindings/js/ScriptController.cpp:
1730 (WebCore::ScriptController::clearWindowShell):
1731 (WebCore::ScriptController::initScript):
1732 Set the PageConsole as the ConsoleClient of the JSGlobalObject
1733 so that WebCore may handle console messages directly. For instance
1734 it may pass messages on to the ChromeClient.
1736 * testing/Internals.cpp:
1737 (WebCore::Internals::consoleProfiles):
1738 To access profiles, go through PageConsole now instead of Console.
1740 * bindings/js/JSDOMWindowBase.cpp:
1741 * bindings/objc/WebScriptObject.mm:
1742 * css/MediaList.cpp:
1743 * dom/ScriptExecutionContext.h:
1745 * dom/ViewportArguments.cpp:
1746 * html/parser/XSSAuditorDelegate.cpp:
1747 * inspector/CommandLineAPIHost.h:
1748 * inspector/InspectorInstrumentation.cpp:
1749 * inspector/InspectorInstrumentation.h:
1750 * inspector/InspectorProfilerAgent.cpp:
1751 * inspector/WebConsoleAgent.cpp:
1752 * loader/FrameLoader.cpp:
1753 * loader/MixedContentChecker.cpp:
1754 * loader/appcache/ApplicationCacheGroup.cpp:
1755 * loader/cache/CachedResourceLoader.cpp:
1756 * page/ChromeClient.h:
1757 * page/ContentSecurityPolicy.cpp:
1760 * svg/SVGDocumentExtensions.cpp:
1761 * workers/WorkerMessagingProxy.cpp:
1762 * workers/WorkerReportingProxy.h:
1765 2014-03-06 Zsolt Borbely <borbezs@inf.u-szeged.hu>
1767 Fix the !ENABLE(CSS_STICKY_POSITION) build
1768 https://bugs.webkit.org/show_bug.cgi?id=129793
1770 Reviewed by Simon Fraser.
1772 Add missing ENABLE(CSS_STICKY_POSITION) guard to EditingStyle::convertPositionStyle().
1774 * editing/EditingStyle.cpp:
1775 (WebCore::EditingStyle::convertPositionStyle):
1777 2014-03-06 Joseph Pecoraro <pecoraro@apple.com>
1779 [Mac] Leak: dispatch_semaphore leak allocated in MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange
1780 https://bugs.webkit.org/show_bug.cgi?id=129792
1782 Reviewed by Anders Carlsson.
1784 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1785 (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
1787 2014-03-06 Brendan Long <b.long@cablelabs.com>
1789 Implement VideoTrackList.selectedIndex
1790 https://bugs.webkit.org/show_bug.cgi?id=129770
1792 Reviewed by Eric Carlson.
1794 Tests: media/track/video/video-track-mkv-theora-selected.html
1796 * html/track/VideoTrackList.idl:
1798 2014-03-06 Lorenzo Tilve <ltilve@igalia.com>
1800 [GTK][CMake] Fix the GTK+ CMake build
1801 https://bugs.webkit.org/show_bug.cgi?id=129801
1803 Reviewed by Martin Robinson.
1805 Include missing files for CMake build
1807 * CMakeLists.txt: Add a missing references to DOMURLMediaStream
1809 2014-03-06 Zalan Bujtas <zalan@apple.com>
1811 Subpixel rendering: Setting content to opaque on m_graphicsLayer depends on subpixel accumulation.
1812 https://bugs.webkit.org/show_bug.cgi?id=129776
1814 Reviewed by Simon Fraser.
1816 isEmpty() returns true when any of the dimensions is <= 0. Subpixel accumulation could happen
1817 in one direction only. Use isZero() instead().
1819 * rendering/RenderLayerBacking.cpp:
1820 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1822 2014-03-06 Gurpreet Kaur <k.gurpreet@samsung.com>
1824 REGRESSION (r158254): Rubber-banding at Bing image search causes the toolbar to move up and away
1825 https://bugs.webkit.org/show_bug.cgi?id=128873
1827 Reviewed by Antonio Gomes.
1829 This regression is caused by http://trac.webkit.org/changeset/154614
1830 and http://trac.webkit.org/changeset/156605. So reverting the changes
1831 to make it Web compatible as earlier.
1834 (WebCore::Element::scrollLeft):
1835 (WebCore::Element::scrollTop):
1836 (WebCore::Element::setScrollLeft):
1837 (WebCore::Element::setScrollTop):
1838 Reverting changes as it caused regression.
1840 2014-03-06 Zan Dobersek <zdobersek@igalia.com>
1842 Move Source/WebCore/html/canvas/ code to std::unique_ptr
1843 https://bugs.webkit.org/show_bug.cgi?id=129668
1845 Reviewed by Anders Carlsson.
1847 Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/html/canvas/ to std::unique_ptr.
1849 * html/HTMLCanvasElement.cpp:
1850 (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
1851 (WebCore::HTMLCanvasElement::getContext):
1852 * html/HTMLCanvasElement.h:
1853 * html/canvas/ANGLEInstancedArrays.cpp:
1854 * html/canvas/ANGLEInstancedArrays.h:
1855 * html/canvas/CanvasRenderingContext2D.h:
1856 * html/canvas/EXTTextureFilterAnisotropic.cpp:
1857 * html/canvas/EXTTextureFilterAnisotropic.h:
1858 * html/canvas/OESElementIndexUint.cpp:
1859 * html/canvas/OESElementIndexUint.h:
1860 * html/canvas/OESStandardDerivatives.cpp:
1861 * html/canvas/OESStandardDerivatives.h:
1862 * html/canvas/OESTextureFloat.cpp:
1863 * html/canvas/OESTextureFloat.h:
1864 * html/canvas/OESTextureFloatLinear.cpp:
1865 * html/canvas/OESTextureFloatLinear.h:
1866 * html/canvas/OESTextureHalfFloat.cpp:
1867 * html/canvas/OESTextureHalfFloat.h:
1868 * html/canvas/OESTextureHalfFloatLinear.cpp:
1869 * html/canvas/OESTextureHalfFloatLinear.h:
1870 * html/canvas/OESVertexArrayObject.cpp:
1871 * html/canvas/OESVertexArrayObject.h:
1872 * html/canvas/WebGLCompressedTextureATC.cpp:
1873 * html/canvas/WebGLCompressedTextureATC.h:
1874 * html/canvas/WebGLCompressedTexturePVRTC.cpp:
1875 * html/canvas/WebGLCompressedTexturePVRTC.h:
1876 * html/canvas/WebGLCompressedTextureS3TC.cpp:
1877 * html/canvas/WebGLCompressedTextureS3TC.h:
1878 * html/canvas/WebGLDebugRendererInfo.cpp:
1879 * html/canvas/WebGLDebugRendererInfo.h:
1880 * html/canvas/WebGLDebugShaders.cpp:
1881 * html/canvas/WebGLDebugShaders.h:
1882 * html/canvas/WebGLDepthTexture.cpp:
1883 * html/canvas/WebGLDepthTexture.h:
1884 * html/canvas/WebGLDrawBuffers.cpp:
1885 * html/canvas/WebGLDrawBuffers.h:
1886 * html/canvas/WebGLLoseContext.cpp:
1887 * html/canvas/WebGLLoseContext.h:
1888 * html/canvas/WebGLRenderingContext.cpp:
1889 (WebCore::WebGLRenderingContext::create):
1890 (WebCore::WebGLRenderingContext::getExtension):
1891 * html/canvas/WebGLRenderingContext.h:
1893 2014-03-06 Zan Dobersek <zdobersek@igalia.com>
1895 Move Source/WebCore/editing/ code to std::unique_ptr
1896 https://bugs.webkit.org/show_bug.cgi?id=129665
1898 Reviewed by Anders Carlsson.
1900 Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/editing/ with std::unique_ptr.
1902 * editing/EditingStyle.cpp:
1903 (WebCore::htmlElementEquivalents):
1904 (WebCore::EditingStyle::conflictsWithImplicitStyleOfElement):
1905 (WebCore::htmlAttributeEquivalents):
1906 (WebCore::EditingStyle::conflictsWithImplicitStyleOfAttributes):
1907 (WebCore::EditingStyle::extractConflictingImplicitStyleOfAttributes):
1908 (WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
1909 (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
1910 * editing/Editor.cpp:
1911 (WebCore::Editor::Editor):
1912 (WebCore::Editor::clear):
1915 (WebCore::Frame::Frame):
1918 2014-03-06 Zan Dobersek <zdobersek@igalia.com>
1920 Move to using std::unique_ptr for KeyboardEvent, ScriptExecutionContext::PendingException
1921 https://bugs.webkit.org/show_bug.cgi?id=129061
1923 Reviewed by Eric Carlson.
1925 Replace uses of OwnPtr and PassOwnPtr for KeyboardEvent and ScriptExecutionContext::PendingException
1926 classes with std::unique_ptr. ScriptExecutionContext::Task objects are still handled through OwnPtr,
1927 but this will be addressed later.
1929 * dom/KeyboardEvent.cpp:
1930 (WebCore::KeyboardEvent::KeyboardEvent):
1931 * dom/KeyboardEvent.h:
1932 * dom/ScriptExecutionContext.cpp:
1933 (WebCore::ScriptExecutionContext::reportException):
1934 * dom/ScriptExecutionContext.h:
1935 * dom/ScriptRunner.h: Remove an unnecessary PassOwnPtr header inclusion.
1937 2014-03-06 Commit Queue <commit-queue@webkit.org>
1939 Unreviewed, rolling out r165175.
1940 http://trac.webkit.org/changeset/165175
1941 https://bugs.webkit.org/show_bug.cgi?id=129788
1943 Linking failures on GTK, EFL due to missing gstreamer-tag-1.0
1944 dependency (Requested by zdobersek on #webkit).
1946 * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
1947 (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):
1949 2014-03-05 Brendan Long <b.long@cablelabs.com>
1951 [GStreamer] human readable language code for tracks
1952 https://bugs.webkit.org/show_bug.cgi?id=124514
1954 Reviewed by Philippe Normand.
1956 * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
1957 (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged): Run language codes though gst_tag_get_language_code_iso_639_1() to make sure they're valid.
1959 2014-03-05 Ryuan Choi <ryuan.choi@samsung.com>
1961 Remove unused method from Vibration
1962 https://bugs.webkit.org/show_bug.cgi?id=129732
1964 Reviewed by Gyuyoung Kim.
1966 * Modules/vibration/Vibration.cpp:
1967 Removed isActive(), which is never called since r152441.
1968 * Modules/vibration/Vibration.h: Ditto.
1970 2014-03-05 Commit Queue <commit-queue@webkit.org>
1972 Unreviewed, rolling out r165141, r165157, and r165158.
1973 http://trac.webkit.org/changeset/165141
1974 http://trac.webkit.org/changeset/165157
1975 http://trac.webkit.org/changeset/165158
1976 https://bugs.webkit.org/show_bug.cgi?id=129772
1978 "broke ftl" (Requested by olliej_ on #webkit).
1980 * ForwardingHeaders/jit/SpillRegistersMode.h: Removed.
1982 2014-03-05 Martin Robinson <mrobinson@igalia.com>
1984 [GTK][CMake] The GObject DOM bindings should always be built
1985 https://bugs.webkit.org/show_bug.cgi?id=127963
1987 Reviewed by Ryosuke Niwa.
1989 * PlatformGTK.cmake: Make compilation of the WebKitGTK+ GObject DOM bindings
1990 unconditional, instead of conditional on the WebKit2 build.
1992 2014-03-05 Jer Noble <jer.noble@apple.com>
1994 [MSE] Crash in SourceBuffer::sourceBufferPrivateDidReceiveSample() - received samples after SourceBuffer was removed.
1995 https://bugs.webkit.org/show_bug.cgi?id=129761
1997 Reviewed by Eric Carlson.
1999 Guard against the possibility that SourceBufferPrivates will continue to generate samples even after
2000 a parse error. Bail out early from sourceBufferPrivateDidReceiveInitializationSegment and
2001 sourceBufferPrivateDidReceiveSample if the SourceBuffer has been removed.
2003 * Modules/mediasource/SourceBuffer.cpp:
2004 (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
2005 (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
2007 2014-03-05 Enrica Casucci <enrica@apple.com>
2011 * platform/mac/HTMLConverter.mm:
2013 2014-03-05 Enrica Casucci <enrica@apple.com>
2017 * platform/mac/HTMLConverter.mm:
2019 2014-03-05 Enrica Casucci <enrica@apple.com>
2021 Crash when copying content that contains <sup>.
2022 https://bugs.webkit.org/show_bug.cgi?id=129765
2023 <rdar://problem/16139498>
2025 Reviewed by Benjamin Poulain.
2027 Adding static definition of NSAttributeSuperscriptName.
2029 * platform/mac/HTMLConverter.mm:
2031 2014-03-05 Gavin Barraclough <barraclough@apple.com>
2033 https://bugs.webkit.org/show_bug.cgi?id=128625
2034 Add fast mapping from StringImpl to JSString
2036 Unreviewed roll-out.
2038 Reverting r164347, r165054, r165066 - not clear the performance tradeoff was right.
2040 * bindings/js/DOMWrapperWorld.cpp:
2041 (WebCore::DOMWrapperWorld::clearWrappers):
2042 * bindings/js/DOMWrapperWorld.h:
2043 * bindings/js/JSDOMBinding.h:
2044 (WebCore::jsStringWithCache):
2045 * bindings/js/JSDOMWindowBase.cpp:
2046 (WebCore::JSDOMWindowBase::commonVM):
2047 * bindings/scripts/StaticString.pm:
2050 2014-03-05 Daniel Bates <dabates@apple.com>
2051 And Alexey Proskuryakov <ap@apple.com>
2053 ASSERT(newestManifest) fails in WebCore::ApplicationCacheGroup::didFinishLoadingManifest()
2054 https://bugs.webkit.org/show_bug.cgi?id=129753
2055 <rdar://problem/12069835>
2057 Reviewed by Alexey Proskuryakov.
2059 Fixes an issue where an assertion failure would occur when visiting a web site whose on-disk
2060 app cache doesn't contain a manifest resource.
2062 For some reason an app cache for a web site may be partially written to disk. In particular, the
2063 app cache may only contain a CacheGroups entry. That is, the manifest resource and origin records
2064 may not be persisted to disk. From looking over the code, we're unclear how such a situation can occur
2065 and hence have been unable to create such an app cache. We were able to reproduce this issue using
2066 an app cache database file that was provided by a person that was affected by this issue.
2068 No test included because it's not straightforward to write a test for this change.
2070 * loader/appcache/ApplicationCacheGroup.cpp:
2071 (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): Assert that m_cacheBeingUpdated->manifestResource()
2072 is non-null. Currently we only document this assumption in a code comment. Also separated a single assertion
2073 expression into two assertion expressions to make it straightforward to identify the failing sub-expression
2075 * loader/appcache/ApplicationCacheStorage.cpp:
2076 (WebCore::ApplicationCacheStorage::store): Modified to call ApplicationCacheStorage::deleteCacheGroupRecord()
2077 to remove a cache group and associated cache records (if applicable) before inserting a cache group entry.
2078 This replacement approach will ultimately repair incomplete app cache data for people affected by this bug.
2079 (WebCore::ApplicationCacheStorage::loadCache): Log an error and return nullptr if the cache we loaded doesn't
2080 have a manifest resource.
2081 (WebCore::ApplicationCacheStorage::deleteCacheGroupRecord): Added.
2082 (WebCore::ApplicationCacheStorage::deleteCacheGroup): Extracted deletion logic for cache group record into
2083 ApplicationCacheStorage::deleteCacheGroupRecord().
2084 * loader/appcache/ApplicationCacheStorage.h:
2086 2014-03-05 Oliver Hunt <oliver@apple.com>
2088 Support caching of custom setters
2089 https://bugs.webkit.org/show_bug.cgi?id=129519
2091 Reviewed by Filip Pizlo.
2093 Add forwarding header
2095 Tests: js/regress/assign-custom-setter-polymorphic.html
2096 js/regress/assign-custom-setter.html
2098 * ForwardingHeaders/jit/SpillRegistersMode.h: Added.
2100 2014-03-05 David Kilzer <ddkilzer@apple.com>
2102 Fix crash in CompositeEditCommand::cloneParagraphUnderNewElement()
2103 <http://webkit.org/b/129751>
2104 <rdar://problem/16237965>
2106 Reviewed by Jon Honeycutt.
2108 Merged from Blink (patch by Yuta Kitamura):
2109 https://src.chromium.org/viewvc/blink?revision=168160&view=revision
2110 http://crbug.com/345005
2112 The root cause is CompositeEditCommand::moveParagraphWithClones() passing
2113 two positions |start| and |end| which do not follow the document order,
2114 i.e. in some situations |start| is located after |end| because of
2115 the difference in affinity.
2117 This patch fixes this crash by normalizing |end| to |start| in such situations.
2118 It also adds an ASSERT that checks the relationship between |start| and |end|.
2120 Test: editing/execCommand/format-block-crash.html
2122 * editing/CompositeEditCommand.cpp:
2123 (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
2124 (WebCore::CompositeEditCommand::moveParagraphWithClones):
2125 * editing/CompositeEditCommand.h:
2127 2014-03-05 Radu Stavila <stavila@adobe.com>
2129 [CSS Regions] Scrollable regions
2130 https://bugs.webkit.org/show_bug.cgi?id=129301
2132 Reviewed by David Hyatt.
2134 Named flow fragments do not inherit the overflow property from the fragment container.
2135 When asked if the flow thread content should be clipped, the named flow fragments
2136 will respond using the overflow property of the named flow fragment container.
2138 When painting the flow thread layer inside the region, the scrolled content offset of
2139 the region must be used to offset the flow thread's layer.
2141 Tests: fast/regions/scrollable-last-region.html
2142 fast/regions/scrollable-single-region-bt.html
2143 fast/regions/scrollable-single-region-lr.html
2144 fast/regions/scrollable-single-region-relative-element.html
2145 fast/regions/scrollable-single-region-rl.html
2146 fast/regions/scrollable-single-region.html
2148 * rendering/RenderLayer.cpp:
2149 (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
2150 (WebCore::RenderLayer::calculateClipRects):
2151 * rendering/RenderNamedFlowFragment.cpp:
2152 (WebCore::RenderNamedFlowFragment::createStyle):
2153 (WebCore::RenderNamedFlowFragment::shouldClipFlowThreadContent):
2154 * rendering/RenderNamedFlowFragment.h:
2155 * rendering/RenderNamedFlowThread.cpp:
2156 (WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
2157 * rendering/RenderRegion.cpp:
2158 (WebCore::RenderRegion::shouldClipFlowThreadContent):
2159 * rendering/RenderRegion.h:
2161 2014-03-05 Zalan Bujtas <zalan@apple.com>
2163 Subpixel rendering: Device pixel round accumulated subpixel value when the RenderLayer with transform paints its content.
2164 https://bugs.webkit.org/show_bug.cgi?id=129079
2166 Reviewed by Simon Fraser.
2168 Snap the content to the device pixel position (as opposed to integral position) before
2169 applying the transform. Recalculate the remaining subpixels that need offsetting at painting time.
2171 Test: compositing/hidpi-absolute-subpixel-positioned-transformed-elements.html
2173 * platform/graphics/LayoutPoint.h:
2174 (WebCore::roundedForPainting):
2175 * rendering/RenderLayer.cpp:
2176 (WebCore::RenderLayer::paintLayerByApplyingTransform):
2178 2014-03-05 Eric Carlson <eric.carlson@apple.com>
2180 [iOS] Show external device name/type in placeholder
2181 https://bugs.webkit.org/show_bug.cgi?id=129723
2183 Reviewed by Jer Noble.
2185 Make the name and type of the external device available to the JS based controls.
2186 * Modules/mediacontrols/MediaControlsHost.cpp:
2187 (WebCore::MediaControlsHost::externalDeviceDisplayName):
2188 (WebCore::MediaControlsHost::externalDeviceType):
2189 * Modules/mediacontrols/MediaControlsHost.h:
2190 * Modules/mediacontrols/MediaControlsHost.idl:
2192 * Modules/mediacontrols/mediaControlsiOS.js:
2193 (ControllerIOS.prototype.updateWirelessPlaybackStatus): Display device type-specific infomation
2194 in the placeholder image.
2196 * WebCore.exp.in: Export new WebKitSystemInterface functions.
2198 * platform/graphics/MediaPlayer.cpp:
2199 (WebCore::MediaPlayer::wirelessPlaybackTargetName): Added.
2200 (WebCore::MediaPlayer::wirelessPlaybackTargetType): Ditto.
2201 * platform/graphics/MediaPlayer.h:
2202 * platform/graphics/MediaPlayerPrivate.h:
2204 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2205 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2206 (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetType): Added.
2207 (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetName): Ditto.
2209 * platform/ios/WebCoreSystemInterfaceIOS.mm:
2210 * platform/mac/WebCoreSystemInterface.h:
2211 * platform/mac/WebCoreSystemInterface.mm:
2213 2014-03-05 Benjamin Poulain <bpoulain@apple.com>
2215 [iOS] Rename the various VisibleExtent variations to exposedContentRect
2216 https://bugs.webkit.org/show_bug.cgi?id=129728
2218 Reviewed by Simon Fraser.
2220 Rename DocumentVisibleExtent and VisibleExtentContentRect to ExposedContentRect in a desperate
2221 attempt to make things a tiny little bit less confusing.
2223 The name is ExposedContentRect and not ExposedRect as that rect is exposed on ScrollView, while the
2224 rect is in document coordinates (which does not make any difference on WebKit1...).
2227 * platform/ScrollView.h:
2228 * platform/ios/ScrollViewIOS.mm:
2229 (WebCore::ScrollView::exposedContentRect):
2230 (WebCore::ScrollView::setExposedContentRect):
2231 * platform/ios/wak/WAKScrollView.h:
2232 * platform/ios/wak/WAKScrollView.mm:
2233 (-[WAKScrollView exposedContentRect]):
2234 * rendering/RenderLayerCompositor.cpp:
2235 (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
2236 (WebCore::RenderLayerCompositor::didChangeVisibleRect):
2238 2014-03-05 Simon Fraser <simon.fraser@apple.com>
2240 ObjC exception when dropping files into a WKView: drag and drop uses code from WebKit.framework
2241 https://bugs.webkit.org/show_bug.cgi?id=129752
2243 Reviewed by Enrica Casucci.
2245 Add C functions for NSURL-related functionality required by WebKit2
2248 * platform/mac/WebCoreNSURLExtras.h:
2249 * platform/mac/WebCoreNSURLExtras.mm:
2250 (WebCore::URLByCanonicalizingURL):
2251 (WebCore::rangeOfURLScheme):
2252 (WebCore::looksLikeAbsoluteURL):
2254 2014-03-05 Martin Hock <mhock@apple.com>
2256 Add support for sessions to MemoryCache.
2257 https://bugs.webkit.org/show_bug.cgi?id=127794
2259 Reviewed by Sam Weinig.
2262 * editing/DeleteButtonController.cpp:
2263 (WebCore::DeleteButtonController::createDeletionUI): Initialize CachedImage with sessionID.
2265 (WebCore::DOMURL::revokeObjectURL): Remove URL from MemoryCache for all sessions.
2266 * inspector/InspectorPageAgent.cpp:
2267 (WebCore::InspectorPageAgent::cachedResource): Pass sessionID to MemoryCache.
2268 * inspector/InspectorResourceAgent.cpp:
2269 (WebCore::InspectorResourceAgent::replayXHR): Ditto.
2270 * loader/DocumentLoader.cpp:
2271 (WebCore::areAllLoadersPageCacheAcceptable): Ditto.
2272 * loader/FrameLoader.cpp:
2273 (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Ditto.
2274 * loader/ImageLoader.cpp:
2275 (WebCore::ImageLoader::updateFromElement): Initialize CachedImage with sessionID.
2276 * loader/archive/cf/LegacyWebArchive.cpp:
2277 (WebCore::LegacyWebArchive::create): Pass sessionID to MemoryCache.
2278 * loader/cache/CachedCSSStyleSheet.cpp:
2279 (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet): Constructor takes sessionID.
2280 * loader/cache/CachedCSSStyleSheet.h:
2281 * loader/cache/CachedFont.cpp: Ditto.
2282 (WebCore::CachedFont::CachedFont):
2283 * loader/cache/CachedFont.h:
2284 * loader/cache/CachedImage.cpp: Ditto.
2285 (WebCore::CachedImage::CachedImage):
2286 * loader/cache/CachedImage.h:
2287 * loader/cache/CachedRawResource.cpp: Ditto.
2288 (WebCore::CachedRawResource::CachedRawResource):
2289 * loader/cache/CachedRawResource.h:
2290 * loader/cache/CachedResource.cpp: Ditto.
2291 (WebCore::CachedResource::CachedResource):
2292 (WebCore::CachedResource::~CachedResource): Pass sessionID to MemoryCache.
2293 * loader/cache/CachedResource.h:
2294 (WebCore::CachedResource::sessionID):
2295 * loader/cache/CachedResourceLoader.cpp:
2296 (WebCore::createResource): Constructors take sessionID.
2297 (WebCore::CachedResourceLoader::sessionID): Retrieve sessionID from page.
2298 (WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Pass sessionID to MemoryCache.
2299 (WebCore::CachedResourceLoader::requestResource): Initialize CachedCSSStyleSheet with sessionID.
2300 (WebCore::CachedResourceLoader::revalidateResource): Initialize cached resource with sessionID.
2301 (WebCore::CachedResourceLoader::loadResource): Pass sessionID to MemoryCache and initialize cached resource with sessionID.
2302 * loader/cache/CachedResourceLoader.h:
2303 * loader/cache/CachedSVGDocument.cpp: Constructor takes sessionID.
2304 (WebCore::CachedSVGDocument::CachedSVGDocument):
2305 * loader/cache/CachedSVGDocument.h:
2306 * loader/cache/CachedScript.cpp: Ditto.
2307 (WebCore::CachedScript::CachedScript):
2308 * loader/cache/CachedScript.h:
2309 * loader/cache/CachedTextTrack.cpp: Ditto.
2310 (WebCore::CachedTextTrack::CachedTextTrack):
2311 * loader/cache/CachedTextTrack.h:
2312 * loader/cache/CachedXSLStyleSheet.cpp: Ditto.
2313 (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
2314 * loader/cache/CachedXSLStyleSheet.h:
2315 * loader/cache/MemoryCache.cpp:
2316 (WebCore::MemoryCache::getSessionMap): Retrieve CachedResourceMap based on sessionID.
2317 (WebCore::MemoryCache::add): Use sessionID from CachedResource parameter.
2318 (WebCore::MemoryCache::revalidationSucceeded): Add sessionID parameter.
2319 (WebCore::MemoryCache::resourceForURL): Ditto.
2320 (WebCore::MemoryCache::resourceForRequest): Ditto, also move impl into impl method.
2321 (WebCore::MemoryCache::resourceForRequestImpl): Add CachedResourceMap parameter.
2322 (WebCore::MemoryCache::addImageToCache): Use default sessionID.
2323 (WebCore::MemoryCache::removeImageFromCache): Ditto.
2324 (WebCore::MemoryCache::evict): Use sessionID from CachedResource parameter.
2325 (WebCore::MemoryCache::removeResourcesWithOrigin): Iterate through all CachedResourceMaps.
2326 (WebCore::MemoryCache::getOriginsWithCache): Ditto.
2327 (WebCore::MemoryCache::removeUrlFromCache): Add sessionID parameter.
2328 (WebCore::MemoryCache::removeRequestFromCache): Ditto.
2329 (WebCore::MemoryCache::removeRequestFromSessionCaches): Remove request from all CachedResourceMaps, with multithread support.
2330 (WebCore::MemoryCache::removeRequestFromCacheImpl): Add sessionID parameter.
2331 (WebCore::MemoryCache::removeRequestFromSessionCachesImpl): Iterate through all CachedResourceMaps.
2332 (WebCore::MemoryCache::crossThreadRemoveRequestFromCache): Add sessionID parameter.
2333 (WebCore::MemoryCache::crossThreadRemoveRequestFromSessionCaches): Pass on request to removeRequestFromSessionCachesImpl.
2334 (WebCore::MemoryCache::getStatistics): Iterate through all CachedResourceMaps.
2335 (WebCore::MemoryCache::setDisabled): Ditto.
2336 * loader/cache/MemoryCache.h: Create another level for cache.
2337 * platform/CrossThreadCopier.cpp: Allow copying SessionIDs across threads.
2338 (WebCore::SessionID>::copy):
2339 * platform/CrossThreadCopier.h:
2340 * platform/network/cf/ResourceRequest.h:
2341 (WebCore::ResourceRequest::ResourceRequest): Remove trailing whitespace.
2342 * rendering/RenderSnapshottedPlugIn.cpp:
2343 (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Initialize CachedImage with sessionID.
2344 * testing/Internals.cpp:
2345 (WebCore::Internals::isLoadingFromMemoryCache): Pass sessionID to MemoryCache.
2347 2014-03-03 Martin Robinson <mrobinson@igalia.com>
2349 [GTK][CMake] Generate documentation for the DOM bindings
2350 https://bugs.webkit.org/show_bug.cgi?id=126211
2352 Reviewed by Carlos Garcia Campos.
2354 * PlatformGTK.cmake: Add some files to the GObjectDOMBindings build, so that the
2355 doc generation succeeds. Have the GObjectDOMBindings_INSTALLED_HEADERS variable contain
2356 all installed headers and use another variable for GIR generation. Create the configuration
2357 file for the gtkdoc generation.
2359 2014-03-05 Zalan Bujtas <zalan@apple.com>
2361 Subpixel rendering: Wrong cliprect on absolute positioned elements.
2362 https://bugs.webkit.org/show_bug.cgi?id=129656
2364 Reviewed by Simon Fraser.
2366 outlineBoundsForRepaint() is expected to return the outline repaint rect. Using enclosingIntRect()
2367 to calculate the outline boundaries breaks repaint logic in RenderElement::repaintAfterLayoutIfNeeded().
2368 Since enclosingIntRect() can return bigger rect than repaint rect, the old/new bounds' dimensions could end up
2369 being different which triggers the size change repaint code path.
2371 Test: fast/repaint/hidpi-absolute-positioned-element-wrong-cliprect-after-move.html
2373 * rendering/RenderBox.cpp:
2374 (WebCore::RenderBox::outlineBoundsForRepaint):
2375 * rendering/RenderElement.cpp:
2376 (WebCore::RenderElement::repaintAfterLayoutIfNeeded):
2377 * rendering/svg/RenderSVGModelObject.cpp:
2378 (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
2380 2014-03-05 Krzysztof Czech <k.czech@samsung.com>
2382 [ATK] Expose missing functionalities of AtkTableCell to AT.
2383 https://bugs.webkit.org/show_bug.cgi?id=129492
2385 Reviewed by Mario Sanchez Prada.
2387 Implemented missing API of AtkTableCell.
2389 No new tests. Covered by existing ones.
2391 * accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:
2392 (webkitAccessibleTableCellGetColumnSpan):
2393 (webkitAccessibleTableCellGetRowSpan):
2394 (webkitAccessibleTableCellGetPosition):
2395 (webkitAccessibleTableCellGetTable):
2396 (webkitAccessibleTableCellInterfaceInit):
2398 2014-03-05 Andres Gomez <agomez@igalia.com>
2400 [GStreamer] WebSource doesn't need the "iradio-mode" property
2401 https://bugs.webkit.org/show_bug.cgi?id=129685
2403 Reviewed by Philippe Normand.
2405 Removed the "iradio-mode" property from the WK source element
2406 since this was only available for its modification from
2407 playbin/uridecodebin and, as discussed in GStreamer bug #725383,
2408 it was not being set and now is going to be removed.
2410 It is safe just to send always the "icy-metadata" header set and
2411 deal with returning "icy" headers as we were already doing.
2413 * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2414 (webKitWebSrcSetProperty):
2415 (webKitWebSrcGetProperty):
2416 (webKitWebSrcStart):
2418 2014-03-05 Chang Shu <cshu@webkit.org>
2420 Copying wrapping text results in multiple spaces between wrapped lines stripped.
2421 https://bugs.webkit.org/show_bug.cgi?id=129609.
2423 Reviewed by Ryosuke Niwa.
2425 While checking the condition of restoring the missing space, the collapsed spaces
2426 may not be exactly one.
2428 editing/pasteboard/copy-text-with-wrapped-tag.html is enhanced to test this case.
2430 * editing/TextIterator.cpp:
2431 (WebCore::TextIterator::handleTextBox):
2433 2014-03-05 Ryosuke Niwa <rniwa@webkit.org>
2435 appendChild shouldn't invalidate LiveNodeLists and HTMLCollections if they don't have valid caches
2436 https://bugs.webkit.org/show_bug.cgi?id=129727
2438 Reviewed by Andreas Kling.
2440 Before this patch, invalidateNodeListAndCollectionCachesInAncestors invalidated node lists and HTML
2441 collections on ancestors of a node whenever we're inserting or removing a child node. This patch
2442 makes HTMLCollections and LiveNodeLists register themselves with Document only when they have valid
2445 Each user of CollectionIndexCache now implements willValidateIndexCache member function that gets
2446 called when CollectionIndexCache caches any state and necessitates the registration with document.
2448 * dom/ChildNodeList.h: Added an empty willValidateIndexCache since child node lists are never
2449 registered with document.
2451 * dom/CollectionIndexCache.h:
2452 (WebCore::CollectionIndexCache::hasValidCache): Added.
2453 (WebCore::CollectionIndexCache::nodeCount): Calls willValidateIndexCache when caching node count.
2454 (WebCore::CollectionIndexCache::nodeAfterCached): Ditto. Also assert that hasValidCache() true in
2455 the cases where we're simply updating our caches or adding more caches.
2456 (WebCore::CollectionIndexCache::nodeAt): Ditto. Also added a code to set the length cache when
2457 we've reached the end of the list. This should be a slight speed up on some cases.
2460 (WebCore::Document::Document): Initializes a variable used by assertions.
2461 (WebCore::Document::unregisterNodeList): Added an early exit for when m_listsInvalidatedAtDocument
2462 is empty since invalidateNodeListAndCollectionCaches swaps out the list.
2463 (WebCore::Document::registerCollection): Removed the boolean hasIdNameMap since we now explicitly
2464 call collectionCachedIdNameMap in HTMLCollection.
2465 (WebCore::Document::unregisterCollection): Ditto. Exit early if m_collectionsInvalidatedAtDocument
2466 is empty since invalidateNodeListAndCollectionCaches swaps out the list.
2469 * dom/LiveNodeList.cpp:
2470 (WebCore::LiveNodeList::invalidateCache): Unregister the node list with document if we had caches.
2471 * dom/LiveNodeList.h:
2472 (WebCore::LiveNodeList::LiveNodeList):
2473 (WebCore::LiveNodeList::~LiveNodeList): Ditto.
2474 (WebCore::LiveNodeList::invalidateCache): Pass around document. This is necessary since document()
2475 had already moved to the new document inside NodeListsNodeData::invalidateCaches.
2476 (WebCore::LiveNodeList::willValidateIndexCache): Added. Registers itself with document.
2479 (WebCore::Document::invalidateNodeListAndCollectionCaches): Swap the lists since invalidateCache
2480 tries to unregister node lists and HTML collections with document. Since this is the only case in
2481 which node lists and HTML collections being removed may not be in the lists in unregisterNodeList
2482 and unregisterCollection, assert this condition via m_inInvalidateNodeListAndCollectionCaches.
2483 (WebCore::NodeListsNodeData::invalidateCaches):
2485 * dom/NodeRareData.h:
2486 (WebCore::NodeListsNodeData::adoptDocument): Unregister node lists and HTML collections from old
2487 document via invalidateCache. We need to explicitly pass in oldDocument here since owner node's
2488 document had already been changed to newDocument at this point. Since we're invalidating caches,
2489 there is no need to register node lists and HTML collections with newDocument.
2491 * html/HTMLCollection.cpp:
2492 (WebCore::HTMLCollection::HTMLCollection):
2493 (WebCore::HTMLCollection::~HTMLCollection): Unregister the node list with document if we had caches.
2494 (WebCore::HTMLCollection::invalidateCache): Ditto.
2495 (WebCore::HTMLCollection::invalidateNamedElementCache):
2496 * html/HTMLCollection.h:
2497 (WebCore::HTMLCollection::invalidateCache): Pass around document as done in LiveNodeList.
2498 (WebCore::HTMLCollection::willValidateIndexCache): Ditto.
2500 * html/HTMLFormControlsCollection.cpp:
2501 (WebCore::HTMLFormControlsCollection::invalidateCache): Ditto.
2502 * html/HTMLFormControlsCollection.h:
2504 * html/HTMLSelectElement.cpp:
2505 (WebCore::HTMLSelectElement::invalidateSelectedItems): Ditto.
2506 (WebCore::HTMLSelectElement::setRecalcListItems): Ditto.
2508 2014-03-05 Jon Lee <jonlee@apple.com>
2510 Fix linker error after r165087
2511 https://bugs.webkit.org/show_bug.cgi?id=129730
2513 Reviewed by Csaba Osztrogonác.
2515 * WebCore.exp.in: Remove undefined symbol __ZN7WebCore32WebVideoFullscreenChangeObserverD2Ev.
2517 2014-03-04 Zalan Bujtas <zalan@apple.com>
2519 Enable device pixel repaint rect tracking.
2520 https://bugs.webkit.org/show_bug.cgi?id=129712
2522 Reviewed by Simon Fraser.
2524 Tracked repaint rects are device pixel snapped now to support hiDPI test cases.
2526 Test: fast/repaint/hidpi-device-pixel-based-repaint-rect-tracking.html
2529 * page/FrameView.cpp:
2530 (WebCore::FrameView::addTrackedRepaintRect):
2531 (WebCore::FrameView::trackedRepaintRectsAsText): Print them as LayoutUnits to get
2532 trailing zeros cut off.
2534 * rendering/RenderLayer.cpp:
2535 (WebCore::RenderLayer::calculateClipRects):
2536 * rendering/RenderLayer.h:
2537 * rendering/RenderLayerBacking.cpp:
2538 (WebCore::RenderLayerBacking::setContentsNeedDisplay):
2539 (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
2540 * rendering/RenderView.cpp:
2541 (WebCore::RenderView::repaintViewRectangle):
2543 2014-03-04 Simon Fraser <simon.fraser@apple.com>
2545 Don't clamp scrolling node offsets when the offset is changed by delegated scrolling
2546 https://bugs.webkit.org/show_bug.cgi?id=129724
2548 Reviewed by Sam Weinig.
2550 Call setScrollPositionWithoutContentEdgeConstraints() from
2551 ScrollingTree::scrollPositionChangedViaDelegatedScrolling() so that
2552 layers are not clamped during rubber-banding.
2554 This requires making setScrollPositionWithoutContentEdgeConstraints()
2555 a pure virtual function on the base class.
2557 * page/scrolling/ScrollingTree.cpp:
2558 (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
2559 * page/scrolling/ScrollingTreeScrollingNode.h:
2560 * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
2561 * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
2563 2014-03-04 Jeremy Jones <jeremyj@apple.com>
2565 WebVideoFullscreen, should make the hand off of the video layer explicit.
2566 https://bugs.webkit.org/show_bug.cgi?id=128844
2568 Reviewed by Simon Fraser.
2570 This change introduces a more explicit hand-off of the video layer.
2571 This describes the interactions between WebVideoFullscreenInterface and WebVideoFullscreenModel
2572 WebVideoFullscreenModel <-> WebVideoFullscreenInterface
2573 enterFullScreen(*) ->
2575 willLendVideoLayer ->
2576 didLendVideoLayer ->
2577 <- didEnterFullscreen
2579 <- requestExitFullscreen
2582 <- didExitFullscreen
2583 (*) enterFullScreen actually comes from WebVideoFullscreenControllerAVKit.
2586 Export new functions in WebVideoFullscreenInterfaceAVKit, WebVideoFullscreenModelMediaElement, etc.
2588 * platform/ios/WebVideoFullscreenControllerAVKit.mm:
2589 Add WebVideoFullscreenControllerChangeObserver to forward fullscreen callbacks to WebVideoFullscreenController
2591 (WebVideoFullscreenControllerChangeObserver::setTarget):
2592 Sets obj-c target of fullscreen change callbacks.
2594 (-[WebVideoFullscreenController init]):
2595 Point _changeObserver's target at self.
2597 (-[WebVideoFullscreenController dealloc]):
2598 Clear _changeObserver's target.
2600 (-[WebVideoFullscreenController enterFullscreen:]):
2601 Retain self to prevent dealloc during animation or while fullscreen.
2602 Connect _interface to _changeObserver.
2604 (-[WebVideoFullscreenController exitFullscreen]):
2605 Remove use of completion move cleanup to -didExitFullscreen.
2607 (-[WebVideoFullscreenController didEnterFullscreen]):
2608 Nothing to see here.
2610 (-[WebVideoFullscreenController didExitFullscreen]):
2611 Move clean up code that was in a completion to here.
2613 * platform/ios/WebVideoFullscreenInterface.h:
2614 Add delarations for more explicit hand-off of video layer.
2616 * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
2617 Add WebVideoFullscreenChangeObserver to notify when fullscreen animations complete.
2618 Add declarations for more explicit hand-off of video layer.
2619 Add WebAVPlayerLayer now always wraps the m_videoLayer to prevent default behavior
2622 (WebCore::WebVideoFullscreenChangeObserver::~WebVideoFullscreenChangeObserver):
2623 Add empty virtual destructor.
2625 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2626 Include AVKit headers instead of declaring everything locally.
2627 AVPlayerLayer protocol renamed to AVVideoLayer per AVKit.
2629 (-[WebAVPlayerController dealloc]):
2630 Don't refer to self.
2632 (-[WebAVPlayerController playerViewController:shouldDismissWithReason:]):
2633 Pause before requesting exit fullscreen.
2635 (-[WebAVPlayerLayer setPlayerController:]):
2636 This is required by AVVideoLayer, but we don't need it.
2638 (WebVideoFullscreenInterfaceAVKit::playerController):
2641 (WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenChangeObserver):
2642 Set observer to forward fullscreen changes to.
2644 (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
2645 Use more explicit video layer hand-off.
2647 (WebVideoFullscreenInterfaceAVKit::doEnterFullscreen):
2648 Move enterFullscreen logic here.
2649 AVPlayerViewController now takes the video layer at init time.
2650 Always provide a video layer wrapped in a WebAVPlayerLayer.
2652 (WebVideoFullscreenInterfaceAVKit::willLendVideoLayer):
2653 Use more explicit video layer hand-off.
2655 (WebVideoFullscreenInterfaceAVKit::didLendVideoLayer):
2656 Use more explicit video layer hand-off.
2658 (WebVideoFullscreenInterfaceAVKit::exitFullscreen):
2659 Use more explicit video layer hand-off.
2661 * platform/ios/WebVideoFullscreenModel.h:
2662 Add functions for more explicit video layer hand-off.
2664 * platform/ios/WebVideoFullscreenModelMediaElement.h:
2665 Mark virtual functions as virtual.
2666 Add changes for WebVideoFullscreenModel.
2668 * platform/ios/WebVideoFullscreenModelMediaElement.mm:
2669 Use more explicit video layer hand-off.
2671 (WebVideoFullscreenModelMediaElement::setMediaElement):
2672 Don't push the video layer. Wait for a request for it.
2674 (WebVideoFullscreenModelMediaElement::handleEvent):
2675 Make sure m_videoFullscreenInterface is valid.
2677 (WebVideoFullscreenModelMediaElement::borrowVideoLayer):
2678 Use more explicit video layer hand-off.
2679 Lend videoLayer in request to a request to borrow the videoLayer.
2680 Make sure to retain the video layer before it is removed from the layer tree.
2682 (WebVideoFullscreenModelMediaElement::returnVideoLayer):
2683 Use more explicit video layer hand-off.
2685 (WebVideoFullscreenModelMediaElement::requestExitFullscreen):
2686 Don't clear the mediaElement reference until completely exited from fullscreen.
2688 2014-03-04 Simon Fraser <simon.fraser@apple.com>
2690 Get position:fixed working slightly better on iOS
2691 https://bugs.webkit.org/show_bug.cgi?id=129714
2693 Reviewed by Benjamin Poulain.
2695 Send the scroll position as a FloatPoint, rather than an IntPoint.
2698 * page/scrolling/ScrollingTree.cpp:
2699 (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
2700 * page/scrolling/ScrollingTree.h:
2702 2014-03-04 Alex Christensen <achristensen@webkit.org>
2704 Fixed Windows build without MEDIA_CONTROLS_SCRIPT enabled.
2705 https://bugs.webkit.org/show_bug.cgi?id=129701
2707 Reviewed by Jer Noble.
2709 * WebCore.vcxproj/WebCore.vcxproj:
2710 * DerivedSources.cpp:
2711 Moved UserAgentScriptsData.cpp to DerivedSources.cpp to only be built if MEDIA_CONTROLS_SCRIPT is enabled.
2712 * DerivedSources.make:
2713 Only generate UserAgentScripts.cpp/h when USER_AGENT_SCRIPTS is non-empty.
2714 * rendering/RenderThemeWin.cpp:
2715 Only include UserAgentScripts.h when MEDIA_CONTROLS_SCRIPT is enabled.
2717 2014-03-04 Simon Fraser <simon.fraser@apple.com>
2719 Allow iOS DumpRenderTree crashes to show application-specific information
2720 https://bugs.webkit.org/show_bug.cgi?id=129705
2722 Reviewed by David Kilzer.
2724 Make the WKSI function SetCrashReportApplicationSpecificInformation available
2725 in iOS simulator builds.
2728 * platform/ios/WebCoreSystemInterfaceIOS.mm:
2729 * platform/mac/WebCoreSystemInterface.h:
2731 2014-03-04 Andreas Kling <akling@apple.com>
2733 Spam static branch prediction hints on JS bindings.
2734 <https://webkit.org/b/129703>
2736 Add UNLIKELY hints to all !castedThis and exec->hadException() paths
2737 in the JS bindings since they are almost always going to get skipped.
2739 Reviewed by Geoff Garen.
2741 * bindings/scripts/CodeGeneratorJS.pm:
2742 (GenerateImplementation):
2743 (GenerateParametersCheck):
2744 (GenerateImplementationFunctionCall):
2745 (GenerateConstructorDefinition):
2747 2014-03-04 Adenilson Cavalcanti <cavalcantii@gmail.com>
2749 Remove unused StdDeviation from Gaussian Blur effect
2750 https://bugs.webkit.org/show_bug.cgi?id=129693
2752 Reviewed by Simon Fraser.
2754 No new tests, no change on behavior.
2756 * platform/graphics/filters/FEGaussianBlur.cpp:
2757 * platform/graphics/filters/FEGaussianBlur.h:
2759 2014-03-04 Andreas Kling <akling@apple.com>
2761 Add a Document::updateStyleIfNeededForNode(Node&).
2762 <https://webkit.org/b/129689>
2764 Generalize the mechanism that computed style uses to avoid doing full
2765 style updates when the node we're interested in isn't actually dirty.
2767 Reviewed by Antti Koivisto.
2769 * css/CSSComputedStyleDeclaration.cpp:
2770 (WebCore::ComputedStyleExtractor::propertyValue):
2772 (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
2773 (WebCore::Document::updateStyleIfNeededForNode):
2775 * editing/htmlediting.cpp:
2776 (WebCore::isEditablePosition):
2777 * html/HTMLInputElement.cpp:
2778 (WebCore::HTMLInputElement::defaultEventHandler):
2780 2014-03-04 Mark Hahnenberg <mhahnenberg@apple.com>
2782 Merge API shims and JSLock
2783 https://bugs.webkit.org/show_bug.cgi?id=129650
2785 Reviewed by Mark Lam.
2789 JSLock is now taking on all of APIEntryShim's responsibilities since there is never a reason
2790 to take just the JSLock. Ditto for DropAllLocks and APICallbackShim.
2792 * bindings/js/DOMRequestState.h:
2793 (WebCore::DOMRequestState::Scope::Scope):
2794 * bindings/js/JSDOMPromise.h:
2795 (WebCore::DeferredWrapper::resolve):
2796 (WebCore::DeferredWrapper::reject):
2797 (WebCore::DeferredWrapper::resolve<String>):
2798 (WebCore::DeferredWrapper::resolve<bool>):
2800 (WebCore::DeferredWrapper::reject<String>):
2801 * bindings/js/ScriptController.cpp:
2802 (WebCore::ScriptController::evaluateInWorld):
2803 * bindings/js/SerializedScriptValue.cpp:
2804 (WebCore::SerializedScriptValue::create):
2805 (WebCore::SerializedScriptValue::deserialize):
2807 2014-03-04 Beth Dakin <bdakin@apple.com>
2809 REGRESSION: Overlay scrollbars that have grown are sometimes askew in the track
2810 https://bugs.webkit.org/show_bug.cgi?id=129691
2812 <rdar://problem/15666846>
2814 Reviewed by Simon Fraser.
2816 This regression started happening after we adopted the setPresentationValue
2817 ScrollbarPainter API which allows us to update the position of the scrollbar knob
2818 from our secondary scrolling thread. The bug occurs when the scrollbar grows while
2819 it still thinks it is in presentation-value mode. Whenever the scrollbar grows, it
2820 should be in non-presentation value mode.
2822 If the wheel event has ended or been cancelled, we can switch out of presentation
2824 * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
2825 (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
2827 Sometimes we will grow the scrollbar before we have received a wheel event with
2828 the end or cancelled phase, and so automatically switch out of presentation-value
2829 mode whenever we start one of these animations.
2830 * platform/mac/ScrollAnimatorMac.mm:
2831 (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
2833 2014-03-04 Zan Dobersek <zdobersek@igalia.com>
2835 Move Source/WebCore/html/track/ code to std::unique_ptr
2836 https://bugs.webkit.org/show_bug.cgi?id=129666
2838 Reviewed by Eric Carlson.
2840 Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/html/track/ with std::unique_ptr.
2842 * html/track/AudioTrack.h:
2843 * html/track/InbandWebVTTTextTrack.cpp:
2844 (WebCore::InbandWebVTTTextTrack::parseWebVTTCueData):
2845 * html/track/InbandWebVTTTextTrack.h:
2846 * html/track/LoadableTextTrack.cpp:
2847 (WebCore::LoadableTextTrack::loadTimerFired):
2848 (WebCore::LoadableTextTrack::newCuesAvailable):
2849 (WebCore::LoadableTextTrack::cueLoadingCompleted):
2850 (WebCore::LoadableTextTrack::newRegionsAvailable):
2851 * html/track/LoadableTextTrack.h:
2852 * html/track/TextTrack.h:
2853 * html/track/TextTrackCue.h:
2854 * html/track/TextTrackRegion.h:
2855 * html/track/VTTCue.cpp:
2856 (WebCore::VTTCue::createWebVTTNodeTree):
2857 (WebCore::VTTCue::markFutureAndPastNodes):
2858 * html/track/VTTCue.h:
2859 * html/track/VideoTrack.h:
2860 * html/track/WebVTTParser.cpp:
2861 (WebCore::WebVTTParser::WebVTTParser):
2862 * html/track/WebVTTParser.h:
2863 * html/track/WebVTTTokenizer.h:
2864 * loader/TextTrackLoader.cpp:
2865 (WebCore::TextTrackLoader::processNewCueData):
2866 * loader/TextTrackLoader.h:
2868 2014-03-04 Zalan Bujtas <zalan@apple.com>
2870 Subpixel rendering: Make border-radius painting device pixel aware.
2871 https://bugs.webkit.org/show_bug.cgi?id=129558
2873 Reviewed by Simon Fraser.
2875 Snap rounded rects to device pixels right before passing them to GraphicsContext.
2877 * rendering/RenderBoxModelObject.cpp:
2878 (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
2879 (WebCore::RenderBoxModelObject::paintFillLayerExtended):
2880 (WebCore::RenderBoxModelObject::paintBorder):
2881 * rendering/RenderBoxModelObject.h:
2882 * rendering/RenderReplaced.cpp:
2883 (WebCore::RenderReplaced::paint):
2884 * rendering/RenderWidget.cpp:
2885 (WebCore::RenderWidget::paint):
2887 2014-03-04 Simon Fraser <simon.fraser@apple.com>
2889 Crashes and assertions running iOS compositing tests
2890 https://bugs.webkit.org/show_bug.cgi?id=129688
2892 Reviewed by Dean Jackson.
2894 When a layer is no longer composited, we need to unregister it
2895 from the scrolling coordinator, and remove it from m_scrollCoordinatedLayers.
2897 Tested by compositing tests on iOS.
2899 * rendering/RenderLayerCompositor.cpp:
2900 (WebCore::RenderLayerCompositor::updateBacking):
2902 2014-03-04 Antti Koivisto <antti@apple.com>
2904 Update bindings test results after r165046.
2906 * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2907 (webkit_dom_test_obj_set_property):
2908 (webkit_dom_test_obj_set_reflected_string_attr):
2909 (webkit_dom_test_obj_set_reflected_url_attr):
2910 (webkit_dom_test_obj_set_reflected_custom_url_attr):
2911 * bindings/scripts/test/JS/JSTestObj.cpp:
2912 (WebCore::setJSTestObjReflectedStringAttr):
2913 (WebCore::setJSTestObjReflectedURLAttr):
2914 (WebCore::setJSTestObjReflectedCustomURLAttr):
2915 * bindings/scripts/test/ObjC/DOMTestObj.mm:
2916 (-[DOMTestObj setReflectedStringAttr:]):
2917 (-[DOMTestObj setReflectedURLAttr:]):
2918 (-[DOMTestObj setReflectedCustomURLAttr:]):
2920 2014-03-04 Martin Robinson <mrobinson@igalia.com>
2922 [GTK] Simplify the GObject DOM bindings API break check into one step
2923 https://bugs.webkit.org/show_bug.cgi?id=129571
2925 Reviewed by Carlos Garcia Campos.
2927 * bindings/gobject/GNUmakefile.am: We no longer generate the webkitdom.symbols file in the
2928 DerivedSources directory. All the logic is handled internally in the script now.
2929 * bindings/scripts/gobject-run-api-break-test: Removed.
2931 2014-03-04 Zalan Bujtas <zalan@apple.com>
2935 * rendering/RenderThemeIOS.mm:
2936 (WebCore::RenderThemeIOS::addRoundedBorderClip):
2937 (WebCore::RenderThemeIOS::paintFileUploadIconDecorations):
2939 2014-03-04 Zalan Bujtas <zalan@apple.com>
2941 Subpixel rendering: Make GraphicsLayer::fillRect FloatRoundedRect based and cleanup dependencies.
2942 https://bugs.webkit.org/show_bug.cgi?id=129557
2944 Reviewed by Simon Fraser.
2946 This is the preparation for snapping rounded rects to device pixel position. It enables
2947 device pixel aware border-radius painting.
2949 No change in functionality.
2951 * platform/efl/RenderThemeEfl.cpp:
2952 (WebCore::RenderThemeEfl::paintMediaSliderThumb):
2953 * platform/graphics/FloatRoundedRect.cpp:
2954 (WebCore::FloatRoundedRect::FloatRoundedRect):
2955 (WebCore::FloatRoundedRect::isRenderable):
2956 * platform/graphics/FloatRoundedRect.h:
2957 * platform/graphics/GraphicsContext.cpp:
2958 (WebCore::GraphicsContext::clipRoundedRect):
2959 (WebCore::GraphicsContext::clipOutRoundedRect):
2960 (WebCore::GraphicsContext::fillRoundedRect):
2961 (WebCore::GraphicsContext::fillRectWithRoundedHole):
2962 * platform/graphics/GraphicsContext.h:
2963 * platform/graphics/Path.cpp:
2964 (WebCore::Path::addRoundedRect):
2965 * platform/graphics/Path.h:
2966 * platform/graphics/RoundedRect.cpp:
2967 (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):
2968 * platform/graphics/RoundedRect.h:
2969 * platform/graphics/ShadowBlur.cpp:
2970 (WebCore::ShadowBlur::drawRectShadow):
2971 (WebCore::ShadowBlur::drawInsetShadow):
2972 (WebCore::ShadowBlur::drawRectShadowWithoutTiling):
2973 (WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
2974 (WebCore::ShadowBlur::drawInsetShadowWithTiling):
2975 (WebCore::ShadowBlur::drawRectShadowWithTiling):
2976 * platform/graphics/ShadowBlur.h:
2977 * platform/graphics/cairo/GraphicsContextCairo.cpp:
2978 (WebCore::GraphicsContext::fillRect):
2979 (WebCore::GraphicsContext::platformFillRoundedRect):
2980 (WebCore::GraphicsContext::fillRectWithRoundedHole):
2981 * platform/graphics/cg/GraphicsContextCG.cpp:
2982 (WebCore::GraphicsContext::fillRect):
2983 (WebCore::GraphicsContext::platformFillRoundedRect):
2984 (WebCore::GraphicsContext::fillRectWithRoundedHole):
2985 * platform/graphics/wince/GraphicsContextWinCE.cpp:
2986 (WebCore::GraphicsContext::fillRoundedRect):
2987 * platform/gtk/RenderThemeGtk.cpp:
2988 (WebCore::borderRadiiFromStyle):
2989 (WebCore::RenderThemeGtk::paintMediaSliderTrack):
2990 (WebCore::RenderThemeGtk::paintMediaSliderThumb):
2991 (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack):
2992 * platform/win/DragImageWin.cpp:
2993 (WebCore::createDragImageForLink):
2994 * rendering/RenderBox.cpp:
2995 (WebCore::RenderBox::paintBoxDecorations):
2996 (WebCore::RenderBox::pushContentsClip):
2997 * rendering/RenderBoxModelObject.cpp:
2998 (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
2999 (WebCore::RenderBoxModelObject::paintFillLayerExtended):
3000 (WebCore::RenderBoxModelObject::paintBorder):
3001 (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
3002 (WebCore::RenderBoxModelObject::clipBorderSideForComplexInnerPath):
3003 (WebCore::RenderBoxModelObject::paintBoxShadow):
3004 * rendering/RenderLayer.cpp:
3005 (WebCore::RenderLayer::clipToRect):
3006 * rendering/RenderThemeIOS.mm:
3007 (WebCore::RenderThemeIOS::paintRadioDecorations):
3008 (WebCore::RenderThemeIOS::paintTextFieldDecorations):
3009 (WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
3010 (WebCore::RenderThemeIOS::paintSliderTrack):
3011 (WebCore::RenderThemeIOS::paintProgressBar):
3012 (WebCore::RenderThemeIOS::paintFileUploadIconDecorations):
3013 * rendering/RenderThemeMac.mm:
3014 (WebCore::RenderThemeMac::paintMenuListButtonGradients):
3015 (WebCore::RenderThemeMac::paintSliderTrack):
3016 * rendering/RenderThemeSafari.cpp:
3017 (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
3018 (WebCore::RenderThemeSafari::paintSliderTrack):
3019 * rendering/shapes/BoxShape.cpp:
3020 (WebCore::BoxShape::buildDisplayPaths):
3021 * rendering/style/BasicShapes.cpp:
3022 (WebCore::BasicShapeInset::path):
3024 2014-03-04 Andreas Kling <akling@apple.com>
3026 Micro-optimize Strings in JS bindings.
3027 <https://webkit.org/b/129673>
3029 Tweaked for new jsStringWithWeakOwner signature. This patch removes
3030 36 bytes of code from every wrapper getter that returns a DOMString.
3032 Reviewed by Ryosuke Niwa.
3034 * bindings/js/JSDOMBinding.h:
3035 (WebCore::jsStringWithCache):
3037 2014-03-03 David Kilzer <ddkilzer@apple.com>
3039 SVGPropertyTearOffs should detachChildren before deleting its value.
3040 <http://webkit.org/b/129618>
3041 <rdar://problem/15661617>
3043 Reviewed by Maciej Stachowiak.
3045 Merged from Blink (patch by kouhei@chromium.org):
3046 https://src.chromium.org/viewvc/blink?revision=158563&view=revision
3047 http://crbug.com/296276
3049 Test: svg/transforms/svg-matrix-tearoff-crash.html
3051 NOTE: The test does not reproduce a crash on WebKit using
3054 * svg/properties/SVGPropertyTearOff.h:
3055 (WebCore::SVGPropertyTearOff::setValue):
3056 (WebCore::SVGPropertyTearOff::~SVGPropertyTearOff):
3057 - Call detachChildren() if m_value is a copy. The original
3058 Blink patch did not modify the destructor code path, although
3059 that seems obvious via code inspection.
3061 2014-03-04 Zalan Bujtas <zalan@apple.com>
3063 Subpixel rendering: Incorrect repaint rect cuts off content's right edge after move.
3064 https://bugs.webkit.org/show_bug.cgi?id=129652
3066 Reviewed by Simon Fraser.
3068 When repaint rect is adjusted in order to take the distance from renderer into account,
3069 the accumulated fraction value need to be added too. This is always a positive value.
3071 Test: fast/borders/hidpi-border-clipping-right-after-move.html
3073 * rendering/RenderLayerBacking.cpp:
3074 (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
3076 2014-03-04 Ryuan Choi <ryuan.choi@samsung.com>
3078 Remove unused member variable of NetworkInfoController
3079 https://bugs.webkit.org/show_bug.cgi?id=129674
3081 Reviewed by Gyuyoung Kim.
3083 * Modules/networkinfo/NetworkInfoController.cpp:
3084 (WebCore::NetworkInfoController::NetworkInfoController):
3085 (WebCore::NetworkInfoController::create):
3086 (WebCore::provideNetworkInfoTo):
3087 * Modules/networkinfo/NetworkInfoController.h: Removed m_page which is not really used.
3089 2014-02-07 Sergio Villar Senin <svillar@igalia.com>
3091 [CSS Grid Layout] Percentages of indefinite sizes should compute to auto
3092 https://bugs.webkit.org/show_bug.cgi?id=128173
3094 Reviewed by Darin Adler.
3096 We should treat percentages of indefinite sizes as auto as
3097 mandated by the spec. Otherwise we would end up calculating a
3098 percentage of -1, the value we use to represent infinite.
3100 Added some test cases to the current tests.
3102 * rendering/RenderGrid.cpp:
3103 (WebCore::RenderGrid::gridTrackSize):
3104 * rendering/style/GridTrackSize.h:
3105 (WebCore::GridTrackSize::isPercentage):
3107 2014-03-04 Ryosuke Niwa <rniwa@webkit.org>
3109 Don't synchronize attributes in reflect setters when we don't need to
3110 https://bugs.webkit.org/show_bug.cgi?id=129662
3112 Reviewed by Andreas Kling.
3114 The vast majority of attributes don't need synchronization. Avoid calling synchronizeAttribute in setters
3115 for those content attributes generated by "Reflect" keyword in IDL.
3117 * bindings/scripts/CodeGenerator.pm:
3120 (WebCore::Element::setAttributeWithoutSynchronization): Added.
3123 2014-03-04 Andreas Kling <akling@apple.com>
3125 Remove Document::idAttributeName().
3126 <https://webkit.org/b/129663>
3128 Reviewed by Ryosuke "DYEB" Niwa.
3130 This abstraction is not actually used and causes unnecessary indirection
3131 in some pretty hot code paths.
3133 Replace it with hard-coded HTMLNames::idAttr instead which is a compile
3134 time constant pointer. We can revisit this in the future if we wish to
3135 implement support for custom id attributes.
3138 (WebCore::Attr::isId):
3140 (WebCore::Document::Document):
3143 (WebCore::Element::attributeChanged):
3144 (WebCore::Element::willModifyAttribute):
3146 (WebCore::Element::getIdAttribute):
3147 (WebCore::Element::getNameAttribute):
3148 (WebCore::Element::setIdAttribute):
3149 * html/HTMLElement.cpp:
3150 (WebCore::HTMLElement::parseAttribute):
3151 * html/HTMLFrameElementBase.cpp:
3152 (WebCore::HTMLFrameElementBase::parseAttribute):
3153 * html/HTMLMapElement.cpp:
3154 (WebCore::HTMLMapElement::parseAttribute):
3155 * svg/SVGElement.cpp:
3156 (WebCore::SVGElement::attributeChanged):
3157 (WebCore::SVGElement::isKnownAttribute):
3158 (WebCore::SVGElement::svgAttributeChanged):
3160 2014-03-04 Ryosuke Niwa <rniwa@webkit.org>
3162 REGRESSION(r164856): Use after free in WebCore::QualifiedName::operator== / WebCore::StyledElement::attributeChanged
3163 https://bugs.webkit.org/show_bug.cgi?id=129550
3165 Reviewed by Andreas Kling.
3167 We can't store a reference to QualifiedName here because ensureUniqueElementData could delete QualifiedName inside Attribute.
3169 Test: fast/dom/uniquing-attributes-via-setAttribute.html
3172 (WebCore::Element::setAttributeInternal):
3174 2014-03-04 Hyowon Kim <hw1008.kim@samsung.com>
3176 Move EvasGLContext and EvasGLSurface files into the efl common directory.
3177 https://bugs.webkit.org/show_bug.cgi?id=129603
3179 Reviewed by Gyuyoung Kim.
3181 EFL port will use EvasGLContext and EvasGLSurface files in both WK1 and WK2.
3183 No new tests, just refactorings.
3185 * PlatformEfl.cmake:
3186 * platform/graphics/efl/EvasGLContext.cpp: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLContext.cpp.
3187 (WebKit::EvasGLContext::EvasGLContext):
3188 (WebKit::EvasGLContext::~EvasGLContext):
3189 * platform/graphics/efl/EvasGLContext.h: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLContext.h.
3190 (WebKit::EvasGLContext::create):
3191 (WebKit::EvasGLContext::context):
3192 * platform/graphics/efl/EvasGLSurface.cpp: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLSurface.cpp.
3193 (WebKit::EvasGLSurface::EvasGLSurface):
3194 (WebKit::EvasGLSurface::~EvasGLSurface):
3195 * platform/graphics/efl/EvasGLSurface.h: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLSurface.h.
3196 (WebKit::EvasGLSurface::create):
3197 (WebKit::EvasGLSurface::surface):
3199 2014-03-03 Martin Robinson <mrobinson@igalia.com>
3201 Fix the GTK+ CMake build
3203 * PlatformGTK.cmake: Add a missing file to the source list.
3205 2014-03-03 Sanghyup Lee <sh53.lee@samsung.com>
3207 :active style is not cleared when its display property is set to none before mouse released.
3208 https://bugs.webkit.org/show_bug.cgi?id=129465
3210 Reviewed by Antonio Gomes.
3214 We currently clearing the :active style when element has a renderer.
3215 This patch makes elements clear its active style regardless of renderer.
3218 (WebCore::Document::updateHoverActiveState):
3222 * fast/css/active-display-none-expected.txt: Added.
3223 * fast/css/active-display-none.html: Added.
3226 2014-03-03 Andreas Kling <akling@apple.com>
3228 Remove 2 unnecessary includes from JSDOMBinding.h
3229 <https://webkit.org/b/129619>
3231 Reviewed by Antti Koivisto.
3233 * bindings/js/JSDOMBinding.h:
3235 2014-03-03 Myles C. Maxfield <mmaxfield@apple.com>
3237 GraphicsContext::drawLineForText needs to be exported from WebCore.dylib for iOS builds
3238 https://bugs.webkit.org/show_bug.cgi?id=129647
3240 Reviewed by NOBODY (This is a build fix).
3242 Fixing after r165025 and r165016.
3244 No new tests as this is a build fix.
3248 2014-03-03 Jer Noble <jer.noble@apple.com>
3250 [iOS] Start playback button misplaced
3251 https://bugs.webkit.org/show_bug.cgi?id=129628
3253 Reviewed by Simon Fraser.
3255 On YouTube embeds, while the video is loading it is placed into the DOM with a 0x0 size.
3256 This causes the start playback button to be visible in the upper-left corner of the embed
3257 area. The button wasn't visible previously (in plugin mode) because the plugin clipped its
3258 drawing to its bounds, and so the <video> shadow should do the same.
3260 * Modules/mediacontrols/mediaControlsiOS.css:
3261 (::-webkit-media-controls):
3263 2014-03-03 Enrica Casucci <enrica@apple.com>
3265 Build fix for iOS simulator.
3269 2014-03-03 Jeremy Jones <jeremyj@apple.com>
3271 Forward application suspend resume notifications to the web process.
3272 https://bugs.webkit.org/show_bug.cgi?id=129356
3274 Reviewed by Eric Carlson.
3276 * platform/audio/ios/MediaSessionManagerIOS.mm:
3277 (-[WebMediaSessionHelper initWithCallback:]):
3278 Observe UIApplicationDidBecomeActiveNotification,
3279 WebUIApplicationDidBecomeActiveNotification,
3280 WebUIApplicationWillEnterForegroundNotification, and
3281 WebUIApplicationWillResignActiveNotification
3283 (-[WebMediaSessionHelper applicationDidBecomeActive:]):
3286 2014-03-03 Commit Queue <commit-queue@webkit.org>
3288 Unreviewed, rolling out r165013.
3289 http://trac.webkit.org/changeset/165013
3290 https://bugs.webkit.org/show_bug.cgi?id=129646
3292 New code is not thread safe, asserting on a worker test
3293 (Requested by ap on #webkit).
3296 * editing/DeleteButtonController.cpp:
3297 (WebCore::DeleteButtonController::createDeletionUI):
3299 (WebCore::DOMURL::revokeObjectURL):
3300 * inspector/InspectorPageAgent.cpp:
3301 (WebCore::InspectorPageAgent::cachedResource):
3302 * inspector/InspectorResourceAgent.cpp:
3303 (WebCore::InspectorResourceAgent::replayXHR):
3304 * loader/DocumentLoader.cpp:
3305 (WebCore::areAllLoadersPageCacheAcceptable):
3306 * loader/FrameLoader.cpp:
3307 (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads):
3308 * loader/ImageLoader.cpp:
3309 (WebCore::ImageLoader::updateFromElement):
3310 * loader/archive/cf/LegacyWebArchive.cpp:
3311 (WebCore::LegacyWebArchive::create):
3312 * loader/cache/CachedCSSStyleSheet.cpp:
3313 (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
3314 * loader/cache/CachedCSSStyleSheet.h:
3315 * loader/cache/CachedFont.cpp:
3316 (WebCore::CachedFont::CachedFont):
3317 * loader/cache/CachedFont.h:
3318 * loader/cache/CachedImage.cpp:
3319 (WebCore::CachedImage::CachedImage):
3320 * loader/cache/CachedImage.h:
3321 * loader/cache/CachedRawResource.cpp:
3322 (WebCore::CachedRawResource::CachedRawResource):
3323 * loader/cache/CachedRawResource.h:
3324 * loader/cache/CachedResource.cpp:
3325 (WebCore::CachedResource::CachedResource):
3326 (WebCore::CachedResource::~CachedResource):
3327 * loader/cache/CachedResource.h:
3328 * loader/cache/CachedResourceLoader.cpp:
3329 (WebCore::createResource):
3330 (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
3331 (WebCore::CachedResourceLoader::requestResource):
3332 (WebCore::CachedResourceLoader::revalidateResource):
3333 (WebCore::CachedResourceLoader::loadResource):
3334 * loader/cache/CachedResourceLoader.h:
3335 * loader/cache/CachedSVGDocument.cpp:
3336 (WebCore::CachedSVGDocument::CachedSVGDocument):
3337 * loader/cache/CachedSVGDocument.h:
3338 * loader/cache/CachedScript.cpp:
3339 (WebCore::CachedScript::CachedScript):
3340 * loader/cache/CachedScript.h:
3341 * loader/cache/CachedTextTrack.cpp:
3342 (WebCore::CachedTextTrack::CachedTextTrack):
3343 * loader/cache/CachedTextTrack.h:
3344 * loader/cache/CachedXSLStyleSheet.cpp:
3345 (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
3346 * loader/cache/CachedXSLStyleSheet.h:
3347 * loader/cache/MemoryCache.cpp:
3348 (WebCore::MemoryCache::add):
3349 (WebCore::MemoryCache::revalidationSucceeded):
3350 (WebCore::MemoryCache::resourceForURL):
3351 (WebCore::MemoryCache::resourceForRequest):
3352 (WebCore::MemoryCache::addImageToCache):
3353 (WebCore::MemoryCache::removeImageFromCache):
3354 (WebCore::MemoryCache::evict):
3355 (WebCore::MemoryCache::removeResourcesWithOrigin):
3356 (WebCore::MemoryCache::getOriginsWithCache):
3357 (WebCore::MemoryCache::removeUrlFromCache):
3358 (WebCore::MemoryCache::removeRequestFromCache):
3359 (WebCore::MemoryCache::removeRequestFromCacheImpl):
3360 (WebCore::MemoryCache::crossThreadRemoveRequestFromCache):
3361 (WebCore::MemoryCache::getStatistics):
3362 (WebCore::MemoryCache::setDisabled):
3363 * loader/cache/MemoryCache.h:
3364 * platform/CrossThreadCopier.cpp:
3365 * platform/CrossThreadCopier.h:
3366 * platform/network/cf/ResourceRequest.h:
3367 (WebCore::ResourceRequest::ResourceRequest):
3368 * rendering/RenderSnapshottedPlugIn.cpp:
3369 (WebCore::RenderSnapshottedPlugIn::updateSnapshot):
3370 * testing/Internals.cpp:
3371 (WebCore::Internals::isLoadingFromMemoryCache):
3373 2014-03-03 Sam Weinig <sam@webkit.org>
3375 Fix the iOS Simulator build.
3379 2014-03-03 Myles C. Maxfield <mmaxfield@apple.com>
3381 Space between double underlines does not scale with font size
3382 https://bugs.webkit.org/show_bug.cgi?id=129521
3384 Reviewed by Simon Fraser.
3386 This patch moves the logic about how far to draw the second underline (when text-decoration-style: double
3387 is specified) from InlineTextBox to GraphicsContext, because GraphicsContext is the authoritative source
3388 about how thick underlines should be. The space between the two underlines is set to the thickness of
3389 each of the underlines.
3391 This patch also deletes some unused code in InlineTextBox that was never getting triggered, in addition
3392 to unifying drawLineForText with drawLinesForText. This didn't have any performance impact in my testing.
3394 Test: fast/css3-text/css3-text-decoration/text-decoration-style-double-space-scales.html
3396 * platform/graphics/GraphicsContext.h: drawLineForText takes a boolean for if we should draw double
3398 * platform/graphics/cg/GraphicsContextCG.cpp:
3399 (WebCore::GraphicsContext::drawLineForText):
3400 (WebCore::GraphicsContext::drawLinesForText):
3401 * platform/graphics/cairo/GraphicsContextCairo.cpp:
3402 (WebCore::GraphicsContext::drawLineForText):
3403 * platform/graphics/wince/GraphicsContextWinCE.cpp:
3404 (WebCore::GraphicsContext::drawLineForText):
3405 * rendering/InlineTextBox.cpp: Use new boolean argument
3406 (WebCore::drawSkipInkUnderline):
3407 (WebCore::InlineTextBox::paintDecoration):
3409 2014-02-28 Chris Fleizach <cfleizach@apple.com>
3411 AX: Support IOS Accessibility in WK2
3412 https://bugs.webkit.org/show_bug.cgi?id=129527
3414 Reviewed by Sam Weinig.
3416 Update the iOS wrapper so that it can convert points to screen space in WebKit2.
3418 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
3419 (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
3420 (-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
3422 2014-03-03 Martin Hock <mhock@apple.com>
3424 Add support for sessions to MemoryCache.
3425 https://bugs.webkit.org/show_bug.cgi?id=127794
3427 Reviewed by Sam Weinig.
3430 * editing/DeleteButtonController.cpp:
3431 (WebCore::DeleteButtonController::createDeletionUI): Initialize CachedImage with sessionID.
3433 (WebCore::DOMURL::revokeObjectURL): Remove URL from MemoryCache for all sessions.
3434 * inspector/InspectorPageAgent.cpp:
3435 (WebCore::InspectorPageAgent::cachedResource): Pass sessionID to MemoryCache.
3436 * inspector/InspectorResourceAgent.cpp:
3437 (WebCore::InspectorResourceAgent::replayXHR): Ditto.
3438 * loader/DocumentLoader.cpp:
3439 (WebCore::areAllLoadersPageCacheAcceptable): Ditto.
3440 * loader/FrameLoader.cpp:
3441 (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Ditto.
3442 * loader/ImageLoader.cpp:
3443 (WebCore::ImageLoader::updateFromElement): Initialize CachedImage with sessionID.
3444 * loader/archive/cf/LegacyWebArchive.cpp:
3445 (WebCore::LegacyWebArchive::create): Pass sessionID to MemoryCache.
3446 * loader/cache/CachedCSSStyleSheet.cpp:
3447 (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet): Constructor takes sessionID.
3448 * loader/cache/CachedCSSStyleSheet.h:
3449 * loader/cache/CachedFont.cpp: Ditto.
3450 (WebCore::CachedFont::CachedFont):
3451 * loader/cache/CachedFont.h:
3452 * loader/cache/CachedImage.cpp: Ditto.
3453 (WebCore::CachedImage::CachedImage):
3454 * loader/cache/CachedImage.h:
3455 * loader/cache/CachedRawResource.cpp: Ditto.
3456 (WebCore::CachedRawResource::CachedRawResource):
3457 * loader/cache/CachedRawResource.h:
3458 * loader/cache/CachedResource.cpp: Ditto.
3459 (WebCore::CachedResource::CachedResource):
3460 (WebCore::CachedResource::~CachedResource): Pass sessionID to MemoryCache.
3461 * loader/cache/CachedResource.h:
3462 (WebCore::CachedResource::sessionID):
3463 * loader/cache/CachedResourceLoader.cpp:
3464 (WebCore::createResource): Constructors take sessionID.
3465 (WebCore::CachedResourceLoader::sessionID): Retrieve sessionID from page.
3466 (WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Pass sessionID to MemoryCache.
3467 (WebCore::CachedResourceLoader::requestResource): Initialize CachedCSSStyleSheet with sessionID.
3468 (WebCore::CachedResourceLoader::revalidateResource): Initialize cached resource with sessionID.
3469 (WebCore::CachedResourceLoader::loadResource): Pass sessionID to MemoryCache and initialize cached resource with sessionID.
3470 * loader/cache/CachedResourceLoader.h: