[SVG -> OTF Converter] Make placeholders more robust
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-12-19  Myles C. Maxfield  <mmaxfield@apple.com>
2
3         [SVG -> OTF Converter] Make placeholders more robust
4         https://bugs.webkit.org/show_bug.cgi?id=139836
5
6         Reviewed by Dan Bernstein.
7
8         This patch creates a Placeholder object which hides the complexity of
9         populating offsets to subtables.
10
11         No new tests because there is no behavior change.
12
13         * svg/SVGToOTFFontConversion.cpp:
14         (WebCore::SVGToOTFFontConverter::Placeholder::Placeholder):
15         (WebCore::SVGToOTFFontConverter::Placeholder::populate):
16         (WebCore::SVGToOTFFontConverter::Placeholder::~Placeholder):
17         (WebCore::SVGToOTFFontConverter::appendArabicReplacementSubtable):
18         (WebCore::SVGToOTFFontConverter::appendGSUBTable):
19
20 2014-12-19  Chris Dumez  <cdumez@apple.com>
21
22         Fix initial / inherit support for '-webkit-perspective-origin' CSS property
23         https://bugs.webkit.org/show_bug.cgi?id=139843
24
25         Reviewed by Simon Fraser.
26
27         Fix initial / inherit support for '-webkit-perspective-origin' CSS
28         property. These previously had no effect.
29
30         This patch updates the code to be consistent with
31         '-webkit-transform-origin' and gets rid of the code in
32         DeprecatedStyleBuilder as it isn't used.
33
34         Test: fast/css/perspective-origin-initial-inherit.html
35
36         * css/DeprecatedStyleBuilder.cpp:
37         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
38         (WebCore::ApplyPropertyPerspectiveOrigin::applyInheritValue): Deleted.
39         (WebCore::ApplyPropertyPerspectiveOrigin::applyInitialValue): Deleted.
40         (WebCore::ApplyPropertyPerspectiveOrigin::applyValue): Deleted.
41         (WebCore::ApplyPropertyPerspectiveOrigin::createHandler): Deleted.
42         * css/StyleProperties.cpp:
43         (WebCore::StyleProperties::getPropertyValue):
44         (WebCore::StyleProperties::asText):
45         * css/StylePropertyShorthand.cpp:
46         (WebCore::webkitPerspectiveOriginShorthand):
47         (WebCore::shorthandForProperty):
48         (WebCore::matchingShorthandsForLonghand):
49         * css/StylePropertyShorthand.h:
50         * css/StyleResolver.cpp:
51         (WebCore::StyleResolver::applyProperty):
52
53 2014-12-19  Commit Queue  <commit-queue@webkit.org>
54
55         Unreviewed, rolling out r177599.
56         https://bugs.webkit.org/show_bug.cgi?id=139846
57
58         this breaks so many things (Requested by thorton_ on #webkit).
59
60         Reverted changeset:
61
62         "TextIndicator's window can be pushed down if it intersects
63         the menu bar"
64         https://bugs.webkit.org/show_bug.cgi?id=139841
65         http://trac.webkit.org/changeset/177599
66
67 2014-12-19  Timothy Horton  <timothy_horton@apple.com>
68
69         TextIndicator's window can be pushed down if it intersects the menu bar
70         https://bugs.webkit.org/show_bug.cgi?id=139841
71         <rdar://problem/19311017>
72
73         Reviewed by Anders Carlsson.
74
75         * page/mac/TextIndicatorWindow.mm:
76         (WebCore::TextIndicatorWindow::setTextIndicator):
77         Ensure that the textIndicatorWindow sits above the menubar, and re-set
78         its frame so that it moves under the menubar if required.
79
80 2014-12-19  Anders Carlsson  <andersca@apple.com>
81
82         Use WebCore::MachSendRights for the compositing render server port
83         https://bugs.webkit.org/show_bug.cgi?id=139834
84
85         Reviewed by Tim Horton.
86
87         * WebCore.exp.in:
88
89 2014-12-19  Chris Dumez  <cdumez@apple.com>
90
91         [iOS] Log how often media element playback happens using FeatureCounter
92         https://bugs.webkit.org/show_bug.cgi?id=139819
93         <rdar://problem/19309988>
94
95         Reviewed by Eric Carlson.
96
97         Log using FeatureCounter how often we start loading for audio / video
98         elements, and how often they end up being played.
99
100         * html/HTMLMediaElement.cpp:
101         (WebCore::HTMLMediaElement::HTMLMediaElement):
102         Add flag to identify when a media element starts playing for the first
103         time.
104
105         (WebCore::HTMLMediaElement::loadResource):
106         Log when a media element starts loading.
107
108         (WebCore::HTMLMediaElement::updatePlayState):
109         Log when a media element starts playing for the first time.
110
111         * html/HTMLMediaElement.h:
112         Add flag to identify when a media element starts playing for the first
113         time.
114
115         * platform/FeatureCounterKeys.h:
116         Add FeatureCounter keys for HTMLMediaElement loading / playback.
117
118 2014-12-19  Andreas Kling  <akling@apple.com>
119
120         Ref-ify TextIterator API.
121         <https://webkit.org/b/139823>
122
123         Reviewed by Antti Koivisto.
124
125         Change TextIterator functions that always return Range objects to return
126         Ref<Range> instead of PassRefPtr<Range>.
127
128         One API (rangeFromLocationAndLength) may return nullptr, so its return type
129         is now RefPtr<Range>.
130
131         * editing/TextIterator.cpp:
132         (WebCore::TextIterator::range):
133         (WebCore::TextIterator::node):
134         (WebCore::SimplifiedBackwardsTextIterator::range):
135         (WebCore::CharacterIterator::range):
136         (WebCore::characterSubrange):
137         (WebCore::BackwardsCharacterIterator::range):
138         (WebCore::TextIterator::subrange):
139         (WebCore::TextIterator::rangeFromLocationAndLength):
140         (WebCore::TextIterator::getLocationAndLengthFromRange):
141         (WebCore::collapsedToBoundary):
142         (WebCore::findPlainText):
143         * editing/TextIterator.h:
144
145 2014-12-19  Joseph Pecoraro  <pecoraro@apple.com>
146
147         Web Inspector: CRASH in inspector-protocol/debugger/terminate-dedicated-worker-while-paused.html
148         https://bugs.webkit.org/show_bug.cgi?id=139792
149
150         Reviewed by Timothy Hatcher.
151
152         * bindings/js/WorkerScriptDebugServer.cpp:
153         (WebCore::WorkerScriptDebugServer::removeListener):
154         When removing listeners, we could be during WorkerGlobalObject shutdown
155         and WorkerGlobalObject::script may be null.
156
157         * workers/WorkerMessagingProxy.cpp:
158         (WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
159         (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
160         This postTask may happen after m_pageInspector has been cleared, so
161         only execute it if m_pageInspector is still valid.
162
163 2014-12-19  Chris Dumez  <cdumez@apple.com>
164
165         Drop useless HTMLMediaElement::m_previousProgress member
166         https://bugs.webkit.org/show_bug.cgi?id=139822
167
168         Reviewed by Eric Carlson.
169
170         Drop HTMLMediaElement::m_previousProgress member and it is not used or
171         even initialized.
172
173         * html/HTMLMediaElement.h:
174
175 2014-12-19  Chris Dumez  <cdumez@apple.com>
176
177         [iOS] Log how successful the memory cache is using FeatureCounter
178         https://bugs.webkit.org/show_bug.cgi?id=139802
179
180         Reviewed by Andreas Kling.
181
182         Log how successful the memory cache is using FeatureCounter and why we
183         choose not to use the resource in the memory cache when it is present.
184
185         * loader/cache/CachedResourceLoader.cpp:
186         (WebCore::CachedResourceLoader::requestResource):
187         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
188         * platform/FeatureCounterKeys.h:
189
190 2014-12-19  Commit Queue  <commit-queue@webkit.org>
191
192         Unreviewed, rolling out r177574.
193         https://bugs.webkit.org/show_bug.cgi?id=139821
194
195         "Broke Production builds by installing
196         libWebCoreTestSupport.dylib in the wrong directory" (Requested
197         by ddkilzer on #webkit).
198
199         Reverted changeset:
200
201         "Switch from using PLATFORM_NAME to SDK selectors in WebCore,
202         WebInspectorUI, WebKit, WebKit2"
203         https://bugs.webkit.org/show_bug.cgi?id=139463
204         http://trac.webkit.org/changeset/177574
205
206 2014-12-19  Said Abou-Hallawa  <sabouhallawa@apple.com>
207
208         Only when the SVG is inline and only when a shape is referenced before it is defined, this shape will not be drawn.
209         https://bugs.webkit.org/show_bug.cgi?id=139451.
210
211         Reviewed by Antti Koivisto.
212
213         Tests: svg/in-html/defs-after-use.html.
214
215         When parsing the children of an SVG element is finished, we need to notify the
216         other SVG elements which have incomplete shadow trees because of early referencing
217         to this element. The referencing elements need to rebuild their shadow trees and
218         make new copies of the this element and its sub-tree.
219         
220         This is the case where a <use> tag references target elements before these target
221         elements are defined. Updating the shadow DOM tree of a <use> element should update
222         the corresponding shadow render tree as well.
223
224         * svg/SVGElement.cpp:
225         (WebCore::SVGElement::finishParsingChildren):
226         Invalidate all the referencing elements of a target element whose sub-tree has
227         just finished parsing.
228
229 2014-12-19  David Kilzer  <ddkilzer@apple.com>
230
231         Switch from using PLATFORM_NAME to SDK selectors in WebCore, WebInspectorUI, WebKit, WebKit2
232         <http://webkit.org/b/139463>
233
234         Reviewed by Mark Rowe.
235
236         Also remove all uses of SQLITE3_HEADER_SEARCH_PATHS and
237         WEBCORE_SQLITE3_HEADER_SEARCH_PATHS which were phased out in
238         r132859 and needed for Leopard.
239
240         * Configurations/Base.xcconfig:
241         - Only set GCC_ENABLE_OBJC_GC, GCC_MODEL_TUNING and TOOLCHAINS
242           on OS X.
243         - Set GCC_OPTIMIZATION_LEVEL_normal based on SDK.
244         - Simplify SQLITE3_HEADER_SEARCH_PATHS.
245         * Configurations/DebugRelease.xcconfig:
246         - Only set MACOSX_DEPLOYMENT_TARGET and SDKROOT on OS X.
247         * Configurations/Version.xcconfig:
248         - Set SYSTEM_VERSION_PREFIX separately for iOS and OS X.
249         * Configurations/WebCore.xcconfig:
250         - Set EXPORTED_SYMBOLS_FILE_i386, EXPORTED_SYMBOLS_FILE_x86_64,
251           FRAMEWORK_SEARCH_PATHS, INSTALL_PATH, DYLIB_INSTALL_NAME_BASE,
252           OTHER_LDFLAGS, SECTORDER_FLAGS, NORMAL_WEBCORE_FRAMEWORKS_DIR,
253           WEBCORE_FRAMEWORKS_DIR, NORMAL_PRODUCTION_FRAMEWORKS_DIR,
254           PRODUCTION_FRAMEWORKS_DIR,
255           JAVASCRIPTCORE_PRIVATE_HEADERS_DIR_Production and
256           EXCLUDED_SOURCE_FILE_NAMES based on SDK.
257         - Make sure DYLIB_INSTALL_NAME_BASE and OTHER_LDFLAGS are
258           overrideable by WebCoreTestSupport.xcconfig.
259         * Configurations/WebCoreTestSupport.xcconfig:
260         - Set PRIVATE_HEADERS_FOLDER_PATH_Production and
261           INSTALL_PATH_Production based on SDK.
262         - Override SECT_ORDER_FLAGS from WebCore.xcconfig.
263
264 2014-12-19  Chris Dumez  <cdumez@apple.com>
265
266         Clean up StyleBuilderCustom and DeprecatedStyleBuilder
267         https://bugs.webkit.org/show_bug.cgi?id=139807
268
269         Reviewed by Antti Koivisto.
270
271         Clean up StyleBuilderCustom and DeprecatedStyleBuilder.
272
273         * css/DeprecatedStyleBuilder.cpp:
274
275         - Remove unnecessary header includes.
276
277         (WebCore::ApplyPropertyPerspectiveOrigin::applyInheritValue):
278         (WebCore::ApplyPropertyPerspectiveOrigin::applyInitialValue):
279         (WebCore::ApplyPropertyPerspectiveOrigin::applyValue):
280         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
281         (WebCore::ApplyPropertyExpanding::applyInheritValue): Deleted.
282         (WebCore::ApplyPropertyExpanding::applyInitialValue): Deleted.
283         (WebCore::ApplyPropertyExpanding::applyValue): Deleted.
284         (WebCore::ApplyPropertyExpanding::createHandler): Deleted.
285
286         - Rename ApplyPropertyExpanding to ApplyPropertyPerspectiveOrigin as
287           PerspectiveOrigin is the only remaining user of this class. This also
288           allows us to simplify the implementation a lot.
289
290         (WebCore::ApplyPropertyDefaultBase::setValue): Deleted.
291         (WebCore::ApplyPropertyDefaultBase::value): Deleted.
292         (WebCore::ApplyPropertyDefaultBase::initial): Deleted.
293         (WebCore::ApplyPropertyDefaultBase::applyInheritValue): Deleted.
294         (WebCore::ApplyPropertyDefaultBase::applyInitialValue): Deleted.
295         (WebCore::ApplyPropertyDefaultBase::applyValue): Deleted.
296
297         - There is no longer any user of this templated class.
298
299         * css/StyleBuilderCustom.h:
300
301         - Introduce a macro that declares all 3 handlers (inherit, initial and
302           value) in the StyleBuilderCustom class. This greatly reduces the
303           number of lines in this class.
304         - Also alphabetize the handlers.
305
306 2014-12-18  Jeremy Jones  <jeremyj@apple.com>
307
308         dispatch to main thread before accessing playerController() in WebVideoFullscreenInterfaceAVKit::setCanPlayFastReverse
309         https://bugs.webkit.org/show_bug.cgi?id=139809
310
311         Reviewed by Dan Bernstein.
312
313         This prevents a race in playerController().
314
315         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
316         (WebVideoFullscreenInterfaceAVKit::setCanPlayFastReverse):
317
318 2014-12-18  Jessie Berlin  <jberlin@webkit.org>
319
320         More speculative build fixing.
321
322         * WebCore.exp.in:
323
324 2014-12-18  Andreas Kling  <akling@apple.com>
325
326         Ref-ify various Document-related things.
327         <https://webkit.org/b/139796>
328
329         Reviewed by Anders Carlsson.
330
331         * bindings/objc/DOMHTML.mm:
332         (-[DOMHTMLDocument createDocumentFragmentWithText:]):
333         * dom/CDATASection.cpp:
334         (WebCore::CDATASection::create):
335         (WebCore::CDATASection::virtualCreate):
336         * dom/CDATASection.h:
337         * dom/Comment.cpp:
338         (WebCore::Comment::create):
339         * dom/Comment.h:
340         * dom/Document.cpp:
341         (WebCore::Document::create):
342         (WebCore::Document::createDocumentFragment):
343         (WebCore::Document::createTextNode):
344         (WebCore::Document::createComment):
345         (WebCore::Document::createEditingTextNode):
346         (WebCore::Document::createCSSStyleDeclaration):
347         (WebCore::Document::createElement):
348         (WebCore::Document::createRange):
349         (WebCore::Document::createParser):
350         (WebCore::Document::cloneNodeInternal):
351         (WebCore::Document::cloneDocumentWithoutChildren):
352         * dom/Document.h:
353         (WebCore::Document::create):
354         (WebCore::Document::createXHTML):
355         (WebCore::Document::createNonRenderedPlaceholder):
356         * dom/DocumentFragment.cpp:
357         (WebCore::DocumentFragment::create):
358         * dom/DocumentFragment.h:
359         * dom/DocumentType.h:
360         * dom/EntityReference.cpp:
361         (WebCore::EntityReference::create):
362         * dom/EntityReference.h:
363         * dom/Text.cpp:
364         (WebCore::Text::create):
365         (WebCore::Text::createEditingText):
366         (WebCore::Text::splitText):
367         (WebCore::Text::virtualCreate):
368         (WebCore::Text::createWithLengthLimit):
369         * dom/Text.h:
370         * editing/markup.cpp:
371         (WebCore::replaceChildrenWithText):
372         * html/FTPDirectoryDocument.cpp:
373         (WebCore::FTPDirectoryDocument::createParser):
374         * html/FTPDirectoryDocument.h:
375         * html/HTMLDocument.cpp:
376         (WebCore::HTMLDocument::createParser):
377         (WebCore::HTMLDocument::cloneDocumentWithoutChildren):
378         * html/HTMLDocument.h:
379         (WebCore::HTMLDocument::create):
380         (WebCore::HTMLDocument::createSynthesizedDocument):
381         * html/ImageDocument.cpp:
382         (WebCore::ImageDocument::createParser):
383         * html/ImageDocument.h:
384         * html/MediaDocument.cpp:
385         (WebCore::MediaDocument::createParser):
386         * html/MediaDocument.h:
387         * html/PluginDocument.cpp:
388         (WebCore::PluginDocument::createParser):
389         * html/PluginDocument.h:
390         * html/TextDocument.cpp:
391         (WebCore::TextDocument::createParser):
392         * html/TextDocument.h:
393         * html/parser/HTMLConstructionSite.cpp:
394         (WebCore::HTMLConstructionSite::insertTextNode):
395         * html/parser/HTMLDocumentParser.h:
396         (WebCore::HTMLDocumentParser::create):
397         * loader/SinkDocument.cpp:
398         (WebCore::SinkDocument::createParser):
399         * loader/SinkDocument.h:
400         * svg/SVGDocument.cpp:
401         (WebCore::SVGDocument::cloneDocumentWithoutChildren):
402         * svg/SVGDocument.h:
403         * xml/parser/XMLDocumentParser.h:
404         (WebCore::XMLDocumentParser::create):
405         * xml/parser/XMLDocumentParserLibxml2.cpp:
406         (WebCore::XMLParserContext::createStringParser):
407         (WebCore::XMLParserContext::createMemoryParser):
408
409 2014-12-18  Anders Carlsson  <andersca@apple.com>
410
411         Use MachSendRight in WebKit2
412         https://bugs.webkit.org/show_bug.cgi?id=139800
413
414         Reviewed by Tim Horton.
415
416         * WebCore.exp.in:
417         * platform/cocoa/MachSendRight.h:
418         (WebCore::MachSendRight::MachSendRight):
419         (WebCore::MachSendRight::sendRight):
420         * platform/graphics/cocoa/IOSurface.h:
421         * platform/graphics/cocoa/IOSurface.mm:
422         (IOSurface::createFromSendRight):
423         (IOSurface::createFromMachPort): Deleted.
424
425 2014-12-18  Gavin Barraclough  <barraclough@apple.com>
426
427         Add strong typing to RefCounter interface, return value as a bool.
428         https://bugs.webkit.org/show_bug.cgi?id=139776
429
430         Reviewed by Geoff Garen.
431
432         Currently all token vended by a RefCounter have the same type - Ref<RefCounter::Count>.
433         This means there is no compile time type checking to prevent mistakes. Update the count()
434         method to token<>(), templated on type used to identify the token being returned.
435         Calls to token<T>() will return a result of type RefCounter::Token<T>.
436
437         There are a few problems with the fact the counter will return you an exact count of the
438         number of outstanding tokens:
439           - It is desirable to only fire the callback on zero-edge changes; it is more consistent
440             to do so if the value is only readable as a boolean.
441           - It is desirable to provide the value as an argument to the callback, however to make
442             this useful for integer values it is also necessary to indicate the direction of change
443             (0->1 is often interesting where 2->1 is not).
444           - There is a mismatch between the precision of returning a count, and the inherent
445             imprecision of a token based mechanism, where it may be difficult to guarantee
446             absolutely no unnecessary refcount churn, and thus unintentional counter values.
447
448         * page/PageThrottler.cpp:
449         (WebCore::m_mediaActivityCounter):
450         (WebCore::m_pageLoadActivityCounter):
451             - lambdas now passed the value.
452         (WebCore::PageThrottler::mediaActivityToken):
453         (WebCore::PageThrottler::pageLoadActivityToken):
454             - count() -> token<>().
455         * page/PageThrottler.h:
456             - specify tpoken type for PageActivityAssertionToken.
457
458 2014-12-18  Benjamin Poulain  <bpoulain@apple.com>
459
460         HTMLFormControlElement and HTMLObjectElement need not to look for an ancestor on construction
461         https://bugs.webkit.org/show_bug.cgi?id=139791
462
463         Reviewed by Alexey Proskuryakov.
464
465         The objects are being constructed, they have not been inserted into the tree yet.
466         There is not chance of finding the owner form at this point,
467         that is done when inserting the node into the tree.
468
469         * html/HTMLFormControlElement.cpp:
470         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
471         * html/HTMLObjectElement.cpp:
472         (WebCore::HTMLObjectElement::HTMLObjectElement):
473
474 2014-12-18  Chris Fleizach  <cfleizach@apple.com>
475
476         AX: Recursive crash at WebCore::accessibleNameForNode
477         https://bugs.webkit.org/show_bug.cgi?id=139616
478
479         Reviewed by Mario Sanchez Prada.
480
481         An image that uses aria-labelledby to reference its own parent can lead to a recursion crash.
482         There needs to be some information we can pass through these methods to ensure we don't hit this case.
483
484         Test: accessibility/accessibility-description-crash.html
485
486         * accessibility/AccessibilityNodeObject.cpp:
487         (WebCore::AccessibilityNodeObject::alternativeText):
488         (WebCore::AccessibilityNodeObject::textUnderElement):
489         (WebCore::accessibleNameForNode):
490         (WebCore::AccessibilityNodeObject::accessibilityDescriptionForElements):
491         * accessibility/AccessibilityObject.h:
492         (WebCore::AccessibilityTextUnderElementMode::AccessibilityTextUnderElementMode):
493
494 2014-12-18  Chris Fleizach  <cfleizach@apple.com>
495
496         AX: Heuristic: Avoid exposing an element as clickable if mouse event delegation is handled on an element with any explicit ARIA role, including presentation.
497         https://bugs.webkit.org/show_bug.cgi?id=133613
498
499         Reviewed by Mario Sanchez Prada.
500
501         This adds a heuristic to avoid a problem we have where too many objects that say they respond to press actions for accessibility.
502         It results from people installing click handlers on container nodes and then lots of static text objects are "clickable" in the eyes of VoiceOver.
503
504         What we can do is avoid this determination if the element is presentational.
505
506         Test: platform/mac/accessibility/press-action-for-presentational-descendants.html
507
508         * accessibility/AccessibilityObject.cpp:
509         (WebCore::nodeHasPresentationRole):
510         (WebCore::AccessibilityObject::supportsPressAction):
511         * accessibility/AccessibilityObject.h:
512         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
513         (-[WebAccessibilityObjectWrapper accessibilityActionNames]):
514
515 2014-12-18  Chris Fleizach  <cfleizach@apple.com>
516
517         AX: event.target should sometimes be a descendant element on AXPress-triggered mouse clicks
518         https://bugs.webkit.org/show_bug.cgi?id=135689
519
520         Reviewed by Mario Sanchez Prada.
521
522         When trying to find the right sub-node to target, we need to go back up the parent chain to find 
523         an Element, in case we land on a Text node for example.
524
525         Test: accessibility/press-target-uses-text-descendant-node.html
526
527         * accessibility/AccessibilityObject.cpp:
528         (WebCore::AccessibilityObject::press):
529
530 2014-12-16  Sam Weinig  <sam@webkit.org>
531
532         Unify the Mac and iOS implementations of FontPlatformData a bit
533         https://bugs.webkit.org/show_bug.cgi?id=139721
534
535         Reviewed by Anders Carlsson.
536
537         This is a first pass of unifying the Mac and iOS implementations of FontPlatformData.
538         Notable changes:
539         - Change the storage of the platform font to be CTFontRef across the board. Adds NSFont
540           setter/getter/constructor as a temporary measures during the transition away from NSFont.
541         - Removes duplicate code that only differed by whether the type was NSFont or CTFontRef.
542         - Reduces the number of #ifdefs.
543
544         * platform/graphics/FontPlatformData.cpp:
545         (WebCore::FontPlatformData::FontPlatformData):
546         (WebCore::FontPlatformData::operator=):
547         (WebCore::FontPlatformData::openTypeTable): Deleted.
548         * platform/graphics/FontPlatformData.h:
549         (WebCore::FontPlatformData::nsFont):
550         (WebCore::FontPlatformData::setNSFont):
551         (WebCore::FontPlatformData::hash):
552         (WebCore::FontPlatformData::operator==):
553         (WebCore::FontPlatformData::isHashTableDeletedValue):
554         (WebCore::toCTFontRef): Deleted.
555         (WebCore::FontPlatformData::font): Deleted.
556         (WebCore::FontPlatformData::roundsGlyphAdvances): Deleted.
557         (WebCore::FontPlatformData::cgFont): Deleted.
558         (WebCore::FontPlatformData::hashTableDeletedFontValue): Deleted.
559         * platform/graphics/SimpleFontData.h:
560         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
561         (WebCore::FontPlatformData::FontPlatformData):
562         (WebCore::FontPlatformData::~FontPlatformData):
563         (WebCore::FontPlatformData::platformDataInit):
564         (WebCore::FontPlatformData::platformDataAssign):
565         (WebCore::FontPlatformData::setFont):
566         (WebCore::FontPlatformData::roundsGlyphAdvances):
567         (WebCore::FontPlatformData::allowsLigatures):
568         (WebCore::FontPlatformData::ctFont):
569         (WebCore::FontPlatformData::openTypeTable):
570         (WebCore::FontPlatformData::loadFont): Deleted.
571         * platform/graphics/mac/FontCacheMac.mm:
572         (WebCore::FontCache::systemFallbackForCharacters):
573         * platform/graphics/mac/FontMac.mm:
574         (WebCore::Font::drawGlyphs):
575         * platform/graphics/mac/SimpleFontDataMac.mm:
576         (WebCore::SimpleFontData::getCompositeFontReferenceFontData):
577         (WebCore::SimpleFontData::platformInit):
578         (WebCore::SimpleFontData::platformCreateScaledFontData):
579         (WebCore::SimpleFontData::containsCharacters):
580         (WebCore::SimpleFontData::determinePitch):
581         (WebCore::SimpleFontData::renderingStyle):
582         (WebCore::SimpleFontData::advanceForColorBitmapFont):
583
584 2014-12-18  Anders Carlsson  <andersca@apple.com>
585
586         Build fix.
587
588         * platform/cocoa/MachSendRight.cpp:
589
590 2014-12-18  Timothy Horton  <timothy_horton@apple.com>
591
592         Change page preview loading order, and add a TextIndicator
593         https://bugs.webkit.org/show_bug.cgi?id=139793
594         <rdar://problem/19288547>
595
596         Reviewed by Beth Dakin.
597
598         * WebCore.exp.in:
599         * platform/spi/mac/NSPopoverSPI.h:
600         Add an export and some SPI.
601
602 2014-12-18  Anders Carlsson  <andersca@apple.com>
603
604         Clean up MachSendRight and add a copySendRight member function
605         https://bugs.webkit.org/show_bug.cgi?id=139788
606
607         Reviewed by Tim Horton.
608
609         * platform/cocoa/MachSendRight.cpp:
610         (WebCore::retainSendRight):
611         (WebCore::releaseSendRight):
612         Use mach_error_string.
613
614         (WebCore::MachSendRight::copySendRight):
615         Create a new send right with the given mach port.
616
617         (WebCore::MachSendRight::leakSendRight):
618         Use std::exchange.
619
620         * platform/cocoa/MachSendRight.h:
621
622 2014-12-18  Joseph Pecoraro  <pecoraro@apple.com>
623
624         Web Inspector: ASSERT seen closing/opening multiple inspectors
625         https://bugs.webkit.org/show_bug.cgi?id=139783
626
627         Reviewed by Timothy Hatcher.
628
629         * inspector/InspectorDOMAgent.cpp:
630         (WebCore::InspectorDOMAgent::nodeForObjectId):
631
632 2014-12-18  Anders Carlsson  <andersca@apple.com>
633
634         Add a MachSendRight class to WebCore and use it in IOSurface
635         https://bugs.webkit.org/show_bug.cgi?id=139787
636
637         Reviewed by Tim Horton.
638
639         * WebCore.exp.in:
640         * WebCore.xcodeproj/project.pbxproj:
641         * platform/cocoa/MachSendRight.cpp: Added.
642         (WebCore::retainSendRight):
643         (WebCore::releaseSendRight):
644         (WebCore::MachSendRight::adopt):
645         (WebCore::MachSendRight::create):
646         (WebCore::MachSendRight::MachSendRight):
647         (WebCore::MachSendRight::~MachSendRight):
648         (WebCore::MachSendRight::operator=):
649         (WebCore::MachSendRight::leakSendRight):
650         * platform/cocoa/MachSendRight.h: Added.
651         * platform/graphics/cocoa/IOSurface.h:
652         * platform/graphics/cocoa/IOSurface.mm:
653         (IOSurface::createSendRight):
654         (IOSurface::createMachPort): Deleted.
655
656 2014-12-18  Andreas Kling  <akling@apple.com>
657
658         Ref-ify DOMSettableTokenList.
659         <https://webkit.org/b/139785>
660
661         Reviewed by Chris Dumez.
662
663         Make DOMSettableTokenList::create() return a Ref, and have its two client
664         elements store it in a Ref instead of a RefPtr (and fix their getter API
665         to return references.)
666
667         * html/DOMSettableTokenList.cpp:
668         (WebCore::DOMSettableTokenList::create): Deleted.
669         * html/DOMSettableTokenList.h:
670         * html/HTMLLinkElement.cpp:
671         (WebCore::HTMLLinkElement::sizes): Deleted.
672         * html/HTMLLinkElement.h:
673         * html/HTMLOutputElement.cpp:
674         (WebCore::HTMLOutputElement::htmlFor): Deleted.
675         * html/HTMLOutputElement.h:
676
677 2014-12-18  Andreas Kling  <akling@apple.com>
678
679         Ref-ify ClientRectList.
680         <https://webkit.org/b/139780>
681
682         Reviewed by Anders Carlsson.
683
684         Make the ClientRectList::create() helpers return Ref, along with a bunch
685         of other functions that always return non-null ClientRectLists.
686
687         Also make ClientRectList store a Vector<Ref<ClientRect>> internally since
688         entries in the Vector are never null.
689
690         * dom/ClientRectList.cpp:
691         (WebCore::ClientRectList::item):
692         * dom/ClientRectList.h:
693         (WebCore::ClientRectList::create):
694         * dom/Element.cpp:
695         (WebCore::Element::getClientRects):
696         * dom/Element.h:
697         * dom/Range.cpp:
698         (WebCore::Range::getClientRects):
699         * dom/Range.h:
700         * page/Page.cpp:
701         (WebCore::Page::nonFastScrollableRects):
702         * page/Page.h:
703         * testing/Internals.cpp:
704         (WebCore::Internals::inspectorHighlightRects):
705         (WebCore::Internals::nonFastScrollableRects):
706         * testing/Internals.h:
707
708 2014-12-18  Andreas Kling  <akling@apple.com>
709
710         Ref-ify ClientRect.
711         <https://webkit.org/b/139777>
712
713         Reviewed by Anders Carlsson.
714
715         Make the ClientRect::create() helpers return Ref, along with a bunch
716         of other functions that always return non-null ClientRects.
717
718         * dom/ClientRect.h:
719         (WebCore::ClientRect::create):
720         * dom/Element.cpp:
721         (WebCore::Element::getBoundingClientRect):
722         * dom/Element.h:
723         * dom/Range.cpp:
724         (WebCore::Range::getBoundingClientRect):
725         * dom/Range.h:
726         * html/track/VTTRegion.cpp:
727         (WebCore::VTTRegion::displayLastTextTrackCueBox):
728         * testing/Internals.cpp:
729         (WebCore::Internals::absoluteCaretBounds):
730         (WebCore::Internals::boundingBox):
731         (WebCore::Internals::selectionBounds):
732         * testing/Internals.h:
733
734 2014-12-18  Chris Dumez  <cdumez@apple.com>
735
736         [iOS] Log navigation types using FeatureCounter API
737         https://bugs.webkit.org/show_bug.cgi?id=139753
738
739         Reviewed by Darin Adler.
740
741         Log navigation types using FeatureCounter API.
742
743         No new tests, no behavior change other than additional feature
744         counting.
745
746         * loader/FrameLoader.cpp:
747         (WebCore::logNavigationWithFeatureCounter):
748         (WebCore::FrameLoader::loadWithDocumentLoader):
749         * platform/FeatureCounterKeys.h:
750
751 2014-12-18  Chris Dumez  <cdumez@apple.com>
752
753         Move 'font-weight' CSS property to the new StyleBuilder
754         https://bugs.webkit.org/show_bug.cgi?id=139765
755
756         Reviewed by Antti Koivisto.
757
758         Move 'font-weight' CSS property to the new StyleBuilder by using
759         custom code.
760
761         No new tests, no behavior change.
762
763         * css/CSSPropertyNames.in:
764         * css/DeprecatedStyleBuilder.cpp:
765         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
766         (WebCore::ApplyPropertyFontWeight::applyValue): Deleted.
767         (WebCore::ApplyPropertyFontWeight::createHandler): Deleted.
768         * css/StyleBuilderCustom.h:
769         (WebCore::StyleBuilderCustom::applyInitialFontWeight):
770         (WebCore::StyleBuilderCustom::applyInheritFontWeight):
771         (WebCore::StyleBuilderCustom::applyValueFontWeight):
772
773 2014-12-18  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
774
775         Internals methods return 0 instead of false when they fail
776         https://bugs.webkit.org/show_bug.cgi?id=139766
777
778         Reviewed by Darin Adler.
779
780         Some Internals method explicitly return 0 although
781         they expect boolean value.
782
783         No new tests, no behavior change.
784
785         * testing/Internals.cpp:
786         (WebCore::Internals::hasSpellingMarker):
787         (WebCore::Internals::hasAutocorrectedMarker):
788         (WebCore::Internals::isOverwriteModeEnabled):
789         (WebCore::Internals::hasGrammarMarker):
790         Return false instead of 0.
791
792 2014-12-18  Chris Dumez  <cdumez@apple.com>
793
794         [iOS] Log why cached resources are being revalidated using FeatureCounter API
795         https://bugs.webkit.org/show_bug.cgi?id=139759
796         <rdar://problem/19288177>
797
798         Reviewed by Antti Koivisto.
799
800         Log why cached resources are being revalidated using FeatureCounter API.
801         Also log if revalidation is successful or not.
802
803         No new tests, no behavior change.
804
805         * loader/SubresourceLoader.cpp:
806         (WebCore::SubresourceLoader::willSendRequest):
807         (WebCore::SubresourceLoader::didReceiveResponse):
808         * loader/cache/CachedImage.cpp:
809         (WebCore::CachedImage::mustRevalidateDueToCacheHeaders):
810         * loader/cache/CachedImage.h:
811         * loader/cache/CachedResource.cpp:
812         (WebCore::CachedResource::failBeforeStarting):
813         (WebCore::CachedResource::mustRevalidateDueToCacheHeaders):
814         * loader/cache/CachedResource.h:
815         (WebCore::CachedResource::loader):
816         * loader/cache/CachedResourceLoader.cpp:
817         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
818         * platform/FeatureCounterKeys.h:
819
820 2014-12-18  Antti Koivisto  <antti@apple.com>
821
822         Remove alwaysUseBaselineOfPrimaryFont setting
823         https://bugs.webkit.org/show_bug.cgi?id=139770
824
825         Reviewed by Anders Carlsson.
826
827         "FIXME: This is unneeded and should be removed."
828
829         This iOS-only setting has no clients anymore.
830
831         * page/Settings.in:
832         * rendering/RootInlineBox.cpp:
833         (WebCore::RootInlineBox::ascentAndDescentForBox):
834
835 2014-12-18  Radu Stavila  <stavila@adobe.com>
836
837         [SVG Masking] Enable the use of <mask> elements for -webkit-mask-image
838         https://bugs.webkit.org/show_bug.cgi?id=139294
839
840         Reviewed by Simon Fraser.
841
842         This patch links together all parts required for the functionality which improves 
843         the -webkit-mask-image property by allowing it to reference a <mask> element defined 
844         in an inline or external SVG document.
845         Support for this new functionality has been added in a previous patch, under issue
846         https://bugs.webkit.org/show_bug.cgi?id=139092. A more detailed description of how
847         the new functionality works can be found in the ChangeLog for that commit.
848         The containsSVGDocument in ScrollView has been removed because it was added in the
849         previous patch but is no longer required.
850
851         Tests: css3/masking/mask-base64.html
852                css3/masking/mask-multiple-values.html
853                css3/masking/mask-svg-clipped-fragmentId.html
854                css3/masking/mask-svg-fragmentId.html
855                css3/masking/mask-svg-inline-fragmentId.html
856                css3/masking/mask-svg-inline-invalid-fragmentId.html
857                css3/masking/mask-svg-invalid-fragmentId.html
858                css3/masking/mask-svg-no-fragmentId-tiled.html
859                css3/masking/mask-svg-no-fragmentId.html
860                css3/masking/mask-svg-script-entire-svg-to-mask.html
861                css3/masking/mask-svg-script-mask-to-entire-svg.html
862                css3/masking/mask-svg-script-mask-to-none.html
863                css3/masking/mask-svg-script-mask-to-png.html
864                css3/masking/mask-svg-script-none-to-mask.html
865                css3/masking/mask-svg-script-none-to-png.html
866                css3/masking/mask-svg-script-png-to-mask.html
867                css3/masking/mask-svg-script-png-to-none.html
868
869         * css/CSSComputedStyleDeclaration.cpp:
870         (WebCore::ComputedStyleExtractor::propertyValue):
871         * css/CSSParser.cpp:
872         (WebCore::CSSParser::parseFillShorthand):
873         (WebCore::CSSParser::parseFillProperty):
874         (WebCore::CSSParser::parseMaskImage):
875         * css/CSSParser.h:
876         * css/CSSValue.h:
877         * css/DeprecatedStyleBuilder.cpp:
878         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
879         * css/StyleResolver.cpp:
880         (WebCore::StyleResolver::adjustStyleForMaskImages):
881         (WebCore::StyleResolver::applyMatchedProperties):
882         (WebCore::StyleResolver::applyProperty):
883         (WebCore::StyleResolver::loadPendingSVGDocuments):
884         (WebCore::StyleResolver::createMaskImageOperations):
885         (WebCore::StyleResolver::loadPendingImages):
886         * css/StyleResolver.h:
887         * page/FrameView.cpp:
888         (WebCore::FrameView::containsSVGDocument): Deleted.
889         * page/FrameView.h:
890         * page/animation/CSSPropertyAnimation.cpp:
891         (WebCore::blendFunc):
892         (WebCore::MaskImagePropertyWrapper::MaskImagePropertyWrapper):
893         (WebCore::MaskImagePropertyWrapper::equals):
894         (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
895         * platform/ScrollView.h:
896         (WebCore::ScrollView::containsSVGDocument): Deleted.
897         * platform/graphics/MaskImageOperation.cpp:
898         (WebCore::MaskImageOperation::~MaskImageOperation):
899         (WebCore::MaskImageOperation::operator==):
900         * platform/graphics/MaskImageOperation.h:
901         * rendering/RenderBox.cpp:
902         (WebCore::RenderBox::maskClipRect):
903         * rendering/RenderBox.h:
904         * rendering/RenderBoxModelObject.cpp:
905         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
906         (WebCore::RenderBoxModelObject::calculateFillTileSize):
907         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
908         * rendering/RenderElement.cpp:
909         (WebCore::RenderElement::~RenderElement):
910         (WebCore::RenderElement::updateFillImages):
911         * rendering/RenderLayer.cpp:
912         (WebCore::RenderLayer::calculateClipRects):
913         * rendering/RenderLayer.h:
914         * rendering/RenderLayerMaskImageInfo.cpp:
915         (WebCore::RenderLayer::MaskImageInfo::~MaskImageInfo):
916         (WebCore::RenderLayer::MaskImageInfo::updateMaskImageClients):
917         (WebCore::RenderLayer::MaskImageInfo::removeMaskImageClients):
918         * rendering/RenderLayerMaskImageInfo.h:
919         * rendering/style/FillLayer.cpp:
920         (WebCore::FillLayer::hasImage):
921         * rendering/style/FillLayer.h:
922         (WebCore::FillLayer::image):
923         (WebCore::FillLayer::imageOrMaskImage): Deleted.
924         * rendering/style/RenderStyle.cpp:
925         (WebCore::RenderStyle::setMaskImage):
926         * rendering/style/RenderStyle.h:
927
928 2014-12-18  Antti Koivisto  <antti@apple.com>
929
930         Stop returning GlyphPage from various Font functions
931         https://bugs.webkit.org/show_bug.cgi?id=139627
932
933         Reviewed by Darin Adler.
934
935         Make all
936
937             std::pair<GlyphData, GlyphPage*> glyphDataAndPage*(...)
938
939         style functions to just return GlyphData only. The GlyphPage value was only used for an obscure SVG fallback case.
940
941         * platform/graphics/Font.h:
942         (WebCore::Font::glyphDataForCharacter):
943         (WebCore::Font::glyphDataAndPageForCharacter): Deleted.
944         * platform/graphics/FontGlyphs.cpp:
945         (WebCore::glyphDataForCJKCharacterWithoutSyntheticItalic):
946         (WebCore::glyphDataForNonCJKCharacterWithGlyphOrientation):
947         (WebCore::FontGlyphs::glyphDataForSystemFallback):
948         (WebCore::FontGlyphs::glyphDataForVariant):
949         (WebCore::FontGlyphs::glyphDataForCharacter):
950         (WebCore::glyphDataAndPageForCJKCharacterWithoutSyntheticItalic): Deleted.
951         (WebCore::glyphDataAndPageForNonCJKCharacterWithGlyphOrientation): Deleted.
952         (WebCore::FontGlyphs::glyphDataAndPageForSystemFallback): Deleted.
953         (WebCore::FontGlyphs::glyphDataAndPageForVariant): Deleted.
954         (WebCore::FontGlyphs::glyphDataAndPageForCharacter): Deleted.
955         * platform/graphics/FontGlyphs.h:
956         (WebCore::FontGlyphs::GlyphPagesStateSaver::GlyphPagesStateSaver): Deleted.
957         (WebCore::FontGlyphs::GlyphPagesStateSaver::~GlyphPagesStateSaver): Deleted.
958
959             No longer needed.
960
961         * rendering/svg/SVGTextRunRenderingContext.cpp:
962         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
963
964             Simplify by not trying to resolve fallbacks in case context sensitive (based on lang attribute etc)
965             glyph selection fails. Instead just fall back to a default font. This behavior is not specified
966             anywhere as far as I can see. (normal non-context sensitive fallbacks will still work fine).
967             This removes the need to hackishly mutate glyph pages.
968
969             Also fix a bug where we didn't use the specified missing glyph when context sensitive selection failed.
970
971 2014-12-18  Chris Dumez  <cdumez@apple.com>
972
973         Move 'list-style-image' CSS property to the new StyleBuilder
974         https://bugs.webkit.org/show_bug.cgi?id=139763
975
976         Reviewed by Antti Koivisto.
977
978         Move 'list-style-image' CSS property to the new StyleBuilder
979         by reusing an existing Converter helper and renaming it for
980         clarity.
981
982         No new tests, no behavior change.
983
984         * css/CSSPropertyNames.in:
985         * css/DeprecatedStyleBuilder.cpp:
986         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
987         (WebCore::ApplyPropertyStyleImage::applyValue): Deleted.
988         (WebCore::ApplyPropertyStyleImage::createHandler): Deleted.
989         * css/StyleBuilderConverter.h:
990         (WebCore::StyleBuilderConverter::convertStyleImage):
991         (WebCore::StyleBuilderConverter::convertBorderImageSource): Deleted.
992
993 2014-12-17  Csaba Osztrogonác  <ossy@webkit.org>
994
995         URTBF after r177452.
996         https://bugs.webkit.org/show_bug.cgi?id=139752
997
998         * CMakeLists.txt:
999
1000 2014-12-17  Andreas Kling  <akling@apple.com>
1001
1002         Ref-ify Range::create().
1003         <https://webkit.org/b/139755>
1004
1005         Reviewed by Anders Carlsson.
1006
1007         * dom/Document.cpp:
1008         (WebCore::acceptsEditingFocus):
1009         * dom/Element.cpp:
1010         (WebCore::Element::innerText):
1011         * dom/Range.cpp:
1012         (WebCore::Range::create):
1013         (WebCore::Range::cloneRange):
1014         (WebCore::rangeOfContents):
1015         * dom/Range.h:
1016         * editing/AlternativeTextController.cpp:
1017         (WebCore::AlternativeTextController::applyAlternativeTextToRange):
1018         * editing/CompositeEditCommand.cpp:
1019         (WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers):
1020         * editing/VisibleUnits.cpp:
1021         (WebCore::charactersAroundPosition):
1022         * editing/markup.cpp:
1023         (WebCore::StyledMarkupAccumulator::renderedText):
1024         * page/FocusController.cpp:
1025         (WebCore::relinquishesEditingFocus):
1026
1027 2014-12-17  Dan Bernstein  <mitz@apple.com>
1028
1029         <rdar://problem/19282508> WebKitLegacy is unusable due to bad dylib identifier
1030         https://bugs.webkit.org/show_bug.cgi?id=139760
1031
1032         Reviewed by Anders Carlsson.
1033
1034         * Configurations/WebCore.xcconfig:
1035
1036 2014-12-17  Anders Carlsson  <andersca@apple.com>
1037
1038         Get rid of FrameLoader::defaultObjectContentType
1039         https://bugs.webkit.org/show_bug.cgi?id=139758
1040
1041         Reviewed by Geoffrey Garen.
1042
1043         Move the FrameLoader::defaultObjectContentType implementation to its only caller in WebKit/win.
1044
1045         * loader/FrameLoader.cpp:
1046         (WebCore::FrameLoader::defaultObjectContentType): Deleted.
1047         * loader/FrameLoader.h:
1048
1049 2014-12-17  peavo@outlook.com  <peavo@outlook.com>
1050
1051         [Curl] Compile error, setWasCached method has been removed.
1052         https://bugs.webkit.org/show_bug.cgi?id=139737
1053
1054         Reviewed by Alex Christensen.
1055
1056         The ResourceResponseBase::setWasCached() method has been replaced
1057         with ResourceResponseBase::setSource().
1058
1059         * platform/network/curl/CurlCacheEntry.cpp:
1060         (WebCore::CurlCacheEntry::setResponseFromCachedHeaders):
1061
1062 2014-12-17  Chris Dumez  <cdumez@apple.com>
1063
1064         [iOS] Make it possible to toggle FeatureCounter support at runtime
1065         https://bugs.webkit.org/show_bug.cgi?id=139688
1066         <rdar://problem/19266254>
1067
1068         Reviewed by Andreas Kling.
1069
1070         Make it possible to toggle FeatureCounter support at runtime by adding
1071         a setting (disabled by default) and moving the API to a new
1072         FeatureCounter class under WebCore/plattorm which only logs if the
1073         setting is enabled. For privacy reasons, FeatureCounter logging is also
1074         disabled for private / ephemeral sessions.
1075
1076         No new tests, no behavior change.
1077
1078         * CMakeLists.txt:
1079         * Configurations/WebCore.xcconfig:
1080         * WebCore.vcxproj/WebCore.vcxproj:
1081         * WebCore.vcxproj/WebCore.vcxproj.filters:
1082         * WebCore.xcodeproj/project.pbxproj:
1083         * history/PageCache.cpp:
1084         (WebCore::logCanCacheFrameDecision):
1085         (WebCore::logCanCachePageDecision):
1086         * page/Settings.in:
1087         * platform/FeatureCounter.cpp: Renamed from Source/WTF/wtf/FeatureCounter.cpp.
1088         (WebCore::FeatureCounter::shouldUseForPage):
1089         (WebCore::FeatureCounter::incrementKey):
1090         (WebCore::FeatureCounter::setKey):
1091         * platform/FeatureCounter.h: Renamed from Source/WTF/wtf/FeatureCounter.h.
1092         * platform/FeatureCounterKeys.h:
1093         * platform/ios/FeatureCounter.mm: Renamed from Source/WTF/wtf/ios/FeatureCounter.mm.
1094         (WebCore::FeatureCounter::incrementKey):
1095         (WebCore::FeatureCounter::setKey):
1096
1097 2014-12-17  Anders Carlsson  <andersca@apple.com>
1098
1099         Get rid of PluginPackageNone.cpp
1100         https://bugs.webkit.org/show_bug.cgi?id=139735
1101
1102         Reviewed by Andreas Kling.
1103
1104         * CMakeLists.txt:
1105         * PlatformEfl.cmake:
1106         * PlatformGTK.cmake:
1107         * PlatformWin.cmake:
1108         * plugins/PluginPackageNone.cpp: Removed.
1109
1110 2014-12-17  Andreas Kling  <akling@apple.com>
1111
1112         Purge PassRefPtr from Frame.
1113         <https://webkit.org/b/139731>
1114
1115         Reviewed by Anders Carlsson.
1116
1117         Remove all use of PassRefPtr from the Frame class, instead using
1118         Ref or RefPtr as appropriate.
1119
1120         * WebCore.exp.in:
1121         * loader/DocumentWriter.cpp:
1122         (WebCore::DocumentWriter::begin):
1123         * page/Frame.cpp:
1124         (WebCore::Frame::create):
1125         (WebCore::Frame::setView):
1126         (WebCore::Frame::setDocument):
1127         (WebCore::Frame::rangeForPoint):
1128         (WebCore::Frame::createView):
1129         * page/Frame.h:
1130         * xml/XSLTProcessor.cpp:
1131         (WebCore::XSLTProcessor::createDocumentFromSource):
1132
1133 2014-12-17  Myles C. Maxfield  <mmaxfield@apple.com>
1134
1135         Test fix after r177444.
1136
1137         Unreviewed.
1138
1139         * accessibility/AccessibilitySlider.cpp:
1140         (WebCore::AccessibilitySliderThumb::elementRect):
1141
1142 2014-12-16  Myles C. Maxfield  <mmaxfield@apple.com>
1143
1144         Addressing more post-review comments in r177035
1145
1146         * accessibility/AccessibilitySlider.cpp:
1147         (WebCore::AccessibilitySliderThumb::elementRect):
1148         * html/HTMLInputElement.cpp:
1149         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
1150
1151 2014-12-17  Zan Dobersek  <zdobersek@igalia.com>
1152
1153         [TexMap] Sprinkle range-based for-loops where still possible
1154         https://bugs.webkit.org/show_bug.cgi?id=138752
1155
1156         Reviewed by Chris Dumez.
1157
1158         Apply range-based for-loops where possible in the TextureMapper,
1159         TextureMapperGL and TextureMapperTiledBackingStore classes.
1160
1161         Also prettify the loop in SharedGLData destructor and return
1162         nullptr instead of explicitly constructing the empty PassRefPtr
1163         object in TextureMapperTiledBackingStore::texture().
1164
1165         * platform/graphics/texmap/TextureMapper.cpp:
1166         (WebCore::BitmapTexturePool::acquireTexture):
1167         * platform/graphics/texmap/TextureMapperGL.cpp:
1168         (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
1169         (WebCore::TextureMapperGLData::~TextureMapperGLData):
1170         * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
1171         (WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
1172         (WebCore::TextureMapperTiledBackingStore::drawBorder):
1173         (WebCore::TextureMapperTiledBackingStore::drawRepaintCounter):
1174         (WebCore::TextureMapperTiledBackingStore::createOrDestroyTilesIfNeeded):
1175         (WebCore::TextureMapperTiledBackingStore::updateContents):
1176         (WebCore::TextureMapperTiledBackingStore::texture):
1177
1178 2014-12-17  Radu Stavila  <stavila@adobe.com>
1179
1180         The SVGDocument of an SVGImage should not perform any additional actions when the SVGImage is being destroyed
1181         https://bugs.webkit.org/show_bug.cgi?id=139644
1182
1183         Reviewed by Antti Koivisto.
1184
1185         When an SVGImage is destroyed, having its SVGDocument perform style recalc and dispatching events is not only
1186         useless but can also cause problems, such as re-entrancy in StyleResolver::loadPendingResources.
1187
1188         No new tests required, existing tests cover this change.
1189
1190         * dom/Document.cpp:
1191         (WebCore::Document::Document):
1192         * dom/Document.h:
1193         (WebCore::Document::isBeingDestroyed):
1194         (WebCore::Document::setIsBeingDestroyed):
1195         * loader/FrameLoader.cpp:
1196         (WebCore::FrameLoader::closeURL):
1197         * svg/graphics/SVGImage.cpp:
1198         (WebCore::SVGImage::~SVGImage):
1199
1200 2014-12-17  Chris Dumez  <cdumez@apple.com>
1201
1202         Drop useless 'clipToContents' argument for windowClipRect()
1203         https://bugs.webkit.org/show_bug.cgi?id=139722
1204
1205         Reviewed by Darin Adler.
1206
1207         Drop useless 'clipToContents' argument for windowClipRect(). This
1208         argument is never used.
1209
1210         No new tests, no behavior change.
1211
1212         * page/FrameView.cpp:
1213         (WebCore::FrameView::windowClipRect):
1214         * page/FrameView.h:
1215         * platform/ScrollView.h:
1216
1217 2014-12-16  Shivakumar JM  <shiva.jm@samsung.com>
1218
1219         text node should not be created, On setting document.title to the empty string.
1220         https://bugs.webkit.org/show_bug.cgi?id=139121
1221
1222         Reviewed by Darin Adler.
1223
1224         Do not create text node, On setting document.title to the empty string as in spec.
1225         I have confirmed this matches the behavior of Firefox and Chrome.
1226
1227         Test: fast/dom/Document/document-set-title-no-child.html
1228
1229         * html/HTMLTitleElement.cpp:
1230         (WebCore::HTMLTitleElement::setText):
1231
1232 2014-12-16  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1233
1234         Move WebCore/platform/graphics/surfaces to std::unique_ptr
1235         https://bugs.webkit.org/show_bug.cgi?id=139641
1236
1237         Reviewed by Andreas Kling.
1238
1239         Replace OwnPtr|PassOwnPtr with std::make_unique<>|std::unique_ptr<>.
1240
1241         * platform/graphics/GLContext.cpp:
1242         (WebCore::GLContext::sharingContext):
1243         (WebCore::GLContext::createContextForWindow):
1244         (WebCore::GLContext::createOffscreenContext):
1245         * platform/graphics/GLContext.h:
1246         * platform/graphics/GraphicsContext3DPrivate.cpp:
1247         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
1248         * platform/graphics/GraphicsContext3DPrivate.h:
1249         * platform/graphics/egl/GLContextEGL.cpp:
1250         (WebCore::GLContextEGL::createWindowContext):
1251         (WebCore::GLContextEGL::createPbufferContext):
1252         (WebCore::GLContextEGL::createPixmapContext):
1253         (WebCore::GLContextEGL::createContext):
1254         * platform/graphics/egl/GLContextEGL.h:
1255         * platform/graphics/glx/GLContextGLX.cpp:
1256         (WebCore::GLContextGLX::createWindowContext):
1257         (WebCore::GLContextGLX::createPbufferContext):
1258         (WebCore::GLContextGLX::createPixmapContext):
1259         (WebCore::GLContextGLX::createContext):
1260         * platform/graphics/glx/GLContextGLX.h:
1261         * platform/graphics/surfaces/GLTransportSurface.cpp:
1262         (WebCore::GLTransportSurface::createTransportSurface):
1263         (WebCore::GLTransportSurfaceClient::createTransportSurfaceClient):
1264         * platform/graphics/surfaces/GLTransportSurface.h:
1265         * platform/graphics/surfaces/GraphicsSurface.h:
1266         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
1267         * platform/graphics/surfaces/efl/GraphicsSurfaceCommon.cpp:
1268         * platform/graphics/surfaces/egl/EGLSurface.cpp:
1269         (WebCore::EGLTransportSurface::createTransportSurface):
1270         (WebCore::EGLTransportSurface::createTransportSurfaceClient):
1271         (WebCore::EGLTransportSurface::EGLTransportSurface):
1272         * platform/graphics/surfaces/egl/EGLSurface.h:
1273         * platform/graphics/surfaces/egl/EGLXSurface.cpp:
1274         (WebCore::EGLXTransportSurfaceClient::EGLXTransportSurfaceClient):
1275         * platform/graphics/surfaces/egl/EGLXSurface.h:
1276         * platform/graphics/surfaces/glx/GLXSurface.cpp:
1277         (WebCore::GLXTransportSurface::GLXTransportSurface):
1278         (WebCore::GLXOffScreenSurface::initialize):
1279         * platform/graphics/surfaces/glx/GLXSurface.h:
1280
1281 2014-12-16  Timothy Horton  <timothy_horton@apple.com>
1282
1283         Implement and adopt two new TextIndicator presentation animations
1284         https://bugs.webkit.org/show_bug.cgi?id=139715
1285         <rdar://problem/19237945>
1286
1287         Reviewed by Anders Carlsson.
1288
1289         * WebCore.exp.in:
1290         Adjust one symbol and export another.
1291
1292         * page/TextIndicator.cpp:
1293         (WebCore::TextIndicator::createWithSelectionInFrame):
1294         Take a blue-highlight snapshot if we're doing a crossfade without a bounce.
1295
1296         * page/TextIndicator.h:
1297         (WebCore::TextIndicator::presentationTransition):
1298         Add FadeIn and Crossfade transition types.
1299
1300         * page/mac/TextIndicatorWindow.h:
1301         * page/mac/TextIndicatorWindow.mm:
1302         (-[WebTextIndicatorView initWithFrame:textIndicator:margin:]):
1303         (createBounceAnimation):
1304         (createContentCrossfadeAnimation):
1305         (createShadowFadeAnimation):
1306         (createFadeInAnimation):
1307         (-[WebTextIndicatorView _textIndicatorWantsBounce]):
1308         (-[WebTextIndicatorView _textIndicatorWantsContentCrossfade]):
1309         (-[WebTextIndicatorView _textIndicatorWantsFadeIn]):
1310         Factor out the animation construction.
1311
1312         (-[WebTextIndicatorView _animationDuration]):
1313         Factor out the duration computation.
1314
1315         (-[WebTextIndicatorView present]):
1316         (-[WebTextIndicatorView setAnimationProgress:]):
1317         Implement FadeIn and Crossfade transitions.
1318         They can be driven externally and then continue from where they
1319         left off when the progress reaches 100%.
1320         FadeIn changes the opacity of the whole bubble, Crossfade
1321         crossfades the content (from blue to yellow).
1322
1323         (WebCore::TextIndicatorWindow::TextIndicatorWindow):
1324         (WebCore::TextIndicatorWindow::~TextIndicatorWindow):
1325         Don't immediately destroy the window if it is crossfades or fades in.
1326         Fade it out, instead.
1327
1328         (WebCore::TextIndicatorWindow::setAnimationProgress):
1329         Drive the paused animation manually. If progress hits 100%,
1330         start running it automatically from where it last left off.
1331
1332         (WebCore::TextIndicatorWindow::setTextIndicator):
1333         (WebCore::TextIndicatorWindow::startFadeOut):
1334         (-[WebTextIndicatorView presentWithCompletionHandler:]): Deleted.
1335         (WebCore::TextIndicatorWindow::startFadeOutTimerFired): Deleted.
1336         Remove the completion block from -present.
1337
1338         * platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h:
1339         Add some SPI.
1340
1341 2014-12-16  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1342
1343         Move WebCore/platform/image-decoders to std::unique_ptr<>
1344         https://bugs.webkit.org/show_bug.cgi?id=139668
1345
1346         Reviewed by Andreas Kling.
1347
1348         As a step to use std::unique_ptr<>, this patch replaces OwnPtr|PassOwnPtr with
1349         std::unique_ptr<> | std::make_unique<>.
1350
1351         * platform/image-decoders/bmp/BMPImageDecoder.cpp:
1352         (WebCore::BMPImageDecoder::setFailed):
1353         (WebCore::BMPImageDecoder::decode):
1354         (WebCore::BMPImageDecoder::decodeHelper):
1355         * platform/image-decoders/bmp/BMPImageDecoder.h:
1356         * platform/image-decoders/gif/GIFImageDecoder.cpp:
1357         (WebCore::GIFImageDecoder::setFailed):
1358         (WebCore::GIFImageDecoder::gifComplete):
1359         (WebCore::GIFImageDecoder::decode):
1360         * platform/image-decoders/gif/GIFImageDecoder.h:
1361         * platform/image-decoders/gif/GIFImageReader.cpp:
1362         (GIFFrameContext::decode):
1363         (GIFImageReader::addFrameIfNecessary):
1364         * platform/image-decoders/gif/GIFImageReader.h:
1365         * platform/image-decoders/ico/ICOImageDecoder.cpp:
1366         (WebCore::ICOImageDecoder::decode):
1367         (WebCore::ICOImageDecoder::decodeAtIndex):
1368         * platform/image-decoders/ico/ICOImageDecoder.h:
1369         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1370         (WebCore::JPEGImageDecoder::setFailed):
1371         (WebCore::JPEGImageDecoder::decode):
1372         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
1373         * platform/image-decoders/png/PNGImageDecoder.cpp:
1374         (WebCore::PNGImageDecoder::setFailed):
1375         (WebCore::PNGImageDecoder::decode):
1376         * platform/image-decoders/png/PNGImageDecoder.h:
1377
1378 2014-12-16  Andreas Kling  <akling@apple.com>
1379
1380         Use Ref for SecurityOrigin.
1381         <https://webkit.org/b/139710>
1382
1383         Reviewed by Anders Carlsson.
1384
1385         Make SecurityOrigin::create*() return Ref<SecurityOrigin>.
1386
1387         * html/HTMLAnchorElement.cpp:
1388         (WebCore::HTMLAnchorElement::origin):
1389         * loader/DocumentLoadTiming.cpp:
1390         (WebCore::DocumentLoadTiming::addRedirect):
1391         * loader/DocumentLoader.cpp:
1392         (WebCore::DocumentLoader::willSendRequest):
1393         * loader/FrameLoader.cpp:
1394         (WebCore::FrameLoader::commitProvisionalLoad):
1395         * loader/PingLoader.cpp:
1396         (WebCore::PingLoader::sendPing):
1397         * loader/appcache/ApplicationCacheHost.cpp:
1398         (WebCore::ApplicationCacheHost::isApplicationCacheBlockedForRequest):
1399         * loader/appcache/ApplicationCacheStorage.cpp:
1400         (WebCore::ApplicationCacheStorage::getOriginsWithCache):
1401         * page/ContentSecurityPolicy.cpp:
1402         (WebCore::stripURLForUseInReport):
1403         * page/DOMWindow.cpp:
1404         (WebCore::DOMWindow::crossDomainAccessErrorMessage):
1405         * page/SecurityOrigin.cpp:
1406         (WebCore::getCachedOrigin):
1407         (WebCore::SecurityOrigin::create):
1408         (WebCore::SecurityOrigin::createUnique):
1409         (WebCore::SecurityOrigin::isolatedCopy):
1410         (WebCore::SecurityOrigin::canRequest):
1411         (WebCore::SecurityOrigin::createFromString):
1412         (WebCore::SecurityOrigin::maybeCreateFromDatabaseIdentifier):
1413         (WebCore::SecurityOrigin::createFromDatabaseIdentifier):
1414         * page/SecurityOrigin.h:
1415         * page/SecurityPolicy.cpp:
1416         (WebCore::SecurityPolicy::isAccessToURLWhiteListed):
1417         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1418         (WebCore::MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin):
1419         * storage/StorageTracker.cpp:
1420         (WebCore::StorageTracker::deleteOriginWithIdentifier):
1421         * workers/DefaultSharedWorkerRepository.cpp:
1422         (WebCore::DefaultSharedWorkerRepository::connectToWorker):
1423         * workers/WorkerThread.cpp:
1424         (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
1425
1426 2014-12-16  Chris Dumez  <cdumez@apple.com>
1427
1428         Move 'cursor' CSS property to the new StyleBuilder
1429         https://bugs.webkit.org/show_bug.cgi?id=139660
1430
1431         Reviewed by Benjamin Poulain.
1432
1433         Move 'cursor' CSS property to the new StyleBuilder by using
1434         custom code.
1435
1436         No new tests, no behavior change.
1437
1438         * css/CSSPropertyNames.in:
1439         * css/DeprecatedStyleBuilder.cpp:
1440         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
1441         (WebCore::ApplyPropertyCursor::applyInheritValue): Deleted.
1442         (WebCore::ApplyPropertyCursor::applyInitialValue): Deleted.
1443         (WebCore::ApplyPropertyCursor::applyValue): Deleted.
1444         (WebCore::ApplyPropertyCursor::createHandler): Deleted.
1445         * css/StyleBuilderCustom.h:
1446         (WebCore::StyleBuilderCustom::applyInitialCursor):
1447         (WebCore::StyleBuilderCustom::applyInheritCursor):
1448         (WebCore::StyleBuilderCustom::applyValueCursor):
1449
1450 2014-12-16  Zalan Bujtas  <zalan@apple.com>
1451
1452         Subpixel rendering: Animating HTML elements leaves trails when embedded to a subpxiel positioned iframe.
1453         https://bugs.webkit.org/show_bug.cgi?id=139691
1454         rdar://problem/19078958
1455
1456         Reviewed by Simon Fraser.
1457
1458         This patch ensures that repaint rect and actual paint coordinate calculations are in sync.
1459
1460         RenderWidget painting still snaps final coordinates to integral positions. We need to
1461         mimic the same snapping behaviour when the repaint rects are being calculated so that
1462         they are in sync with the final repaint rects. This is a workaround until after
1463         widgets get pushed to device pixel positions.
1464
1465         Test: fast/repaint/hidpi-content-inside-iframe-leaves-trails.html
1466
1467         * rendering/RenderBox.cpp:
1468         (WebCore::RenderBox::computeRectForRepaint):
1469         * rendering/RenderView.cpp:
1470         (WebCore::RenderView::repaintViewRectangle):
1471         * rendering/RenderWidget.cpp:
1472         (WebCore::RenderWidget::paintContents):
1473
1474 2014-12-16  Beth Dakin  <bdakin@apple.com>
1475
1476         REGRESSION: Preview popovers obscure the link, look wrong
1477         https://bugs.webkit.org/show_bug.cgi?id=139711
1478         -and corresponding-
1479         rdar://problem/19271854
1480
1481         Reviewed by Tim Horton.
1482
1483         New SPI.
1484         * WebCore.xcodeproj/project.pbxproj:
1485         * platform/spi/mac/NSPopoverSPI.h: Added.
1486
1487 2014-12-16  Myles C. Maxfield  <mmaxfield@apple.com>
1488
1489         [iOS] Cherokee language is drawn as boxes
1490         https://bugs.webkit.org/show_bug.cgi?id=139706
1491
1492         Reviewed by Simon Fraser.
1493
1494         Test: platform/ios-simulator/fast/text/cherokee.html
1495
1496         * platform/graphics/ios/FontCacheIOS.mm:
1497         (WebCore::languageSpecificFallbackFont):
1498
1499 2014-12-16  Enrica Casucci  <enrica@apple.com>
1500
1501         Fix iOS builders for 8.0
1502         https://bugs.webkit.org/show_bug.cgi?id=139495
1503
1504         Reviewed by Jer Noble
1505
1506         * WebCore.exp.in:
1507         * platform/ios/WebVideoFullscreenControllerAVKit.mm:
1508         (-[WebVideoFullscreenController enterFullscreen:mode:]):
1509         (-[WebVideoFullscreenController requestHideAndExitFullscreen]):
1510         (-[WebVideoFullscreenController enterFullscreen:]): Deleted.
1511         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1512
1513 2014-12-16  Myles C. Maxfield  <mmaxfield@apple.com>
1514
1515         Ruby overhang uses ints instead of floats
1516         https://bugs.webkit.org/show_bug.cgi?id=139624
1517
1518         Reviewed by Dave Hyatt.
1519
1520         Simply change the type.
1521
1522         Updated existing tests.
1523
1524         * rendering/RenderBlockLineLayout.cpp:
1525         (WebCore::RenderBlockFlow::setMarginsForRubyRun):
1526         * rendering/RenderRubyRun.cpp:
1527         (WebCore::RenderRubyRun::getOverhang):
1528         * rendering/RenderRubyRun.h:
1529         * rendering/line/LineWidth.cpp:
1530         (WebCore::LineWidth::applyOverhang):
1531
1532 2014-12-16  Gavin Barraclough  <barraclough@apple.com>
1533
1534         Move Mac process suppression from WebCore to WebKit2
1535         https://bugs.webkit.org/show_bug.cgi?id=139705
1536
1537         Reviewed by Geoff Garen.
1538
1539         Currently PageThrottler constructs the PageActivityState, holds a copy of the ViewState,
1540         and an optional UserActivity.
1541
1542         Instead, still construct the PageActivityState but just pass this out via the Page to WebPage.
1543         Logic From PageThrottler::updateUserActivity merged into WebPage::updateUserActivity.
1544
1545         * WebCore.exp.in:
1546             - removed createUserActivity.
1547         * page/ChromeClient.h:
1548         (WebCore::ChromeClient::setPageActivityState):
1549             - added to propagate PageActivityState to WebPage.
1550         * page/Page.cpp:
1551         (WebCore::Page::Page):
1552             - PageThrottler constructor now takes a Page&.
1553         (WebCore::Page::setViewState):
1554             - no longer necessary to pass this to PageThrottler.
1555         (WebCore::Page::setPageActivityState):
1556             - added to propagate PageActivityState to WebPage.
1557         (WebCore::Page::enablePageThrottler): Deleted.
1558             - PageThrottler no longer has a UserActivity.
1559         * page/Page.h:
1560         (WebCore::Page::pageThrottler):
1561             - added setPageActivityState, removed enablePageThrottler.
1562         * page/PageThrottler.cpp:
1563         (WebCore::PageThrottler::PageThrottler):
1564             - removed m_viewState, added m_page.
1565         (WebCore::PageThrottler::setActivityFlag):
1566             - propagate PageActivityState via Page to WebPage.
1567         (WebCore::PageThrottler::createUserActivity): Deleted.
1568         (WebCore::PageThrottler::updateUserActivity): Deleted.
1569         (WebCore::PageThrottler::setViewState): Deleted.
1570             - removed; PageThrottler no longer has a PageThrottler or UserActivity.
1571         * page/PageThrottler.h:
1572             - removed createUserActivity, setViewState, m_viewState, m_activity; added m_page.
1573
1574 2014-12-16  Jer Noble  <jer.noble@apple.com>
1575
1576         Unreviewed build fix after r177375; explicitly cast to NSUInteger.
1577
1578         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1579         (WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions):
1580         (WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions):
1581
1582 2014-12-16  peavo@outlook.com  <peavo@outlook.com>
1583
1584         [Win] Compiling WebCore fails because of invalid project file.
1585         https://bugs.webkit.org/show_bug.cgi?id=139686
1586
1587         Reviewed by Alex Christensen.
1588
1589         A WebCore project file contains illegal characters.
1590
1591         * WebCore.vcxproj/WebCore.vcxproj.filters:
1592
1593 2014-12-16  Gavin Barraclough  <barraclough@apple.com>
1594
1595         Introduce PageActivityState
1596         https://bugs.webkit.org/show_bug.cgi?id=139687
1597
1598         Reviewed by Anders Carlsson.
1599
1600         Add a bitfield to track each of the activities on the page separately.
1601         Split the hysteresis & counters so we can track these separately.
1602
1603         * page/PageThrottler.cpp:
1604         (WebCore::PageThrottler::PageThrottler):
1605             - initialze new hysteresis, counters; closures call setActivityFlag.
1606         (WebCore::PageThrottler::mediaActivityToken):
1607         (WebCore::PageThrottler::pageLoadActivityToken):
1608             - split m_pageActivityCounter -> m_mediaActivityCounter, m_pageLoadActivityCounter.
1609         (WebCore::PageThrottler::updateUserActivity):
1610             - use m_activityState to check for activity.
1611         (WebCore::PageThrottler::setActivityFlag):
1612             - helper to clear/set a bit in m_activityState, and call updateUserActivity as necessary.
1613         * page/PageThrottler.h:
1614         (WebCore::PageThrottler::didReceiveUserInput):
1615         (WebCore::PageThrottler::pluginDidEvaluateWhileAudioIsPlaying):
1616             - split m_hysteresis -> m_userInputHysteresis, m_audiblePluginHysteresis
1617
1618 2014-12-16  Myles C. Maxfield  <litherum@gmail.com>
1619
1620         Ruby does not preserve expansion opportunities from enclosing context
1621         https://bugs.webkit.org/show_bug.cgi?id=139618
1622
1623         Reviewed by David Hyatt.
1624
1625         There is currently no sharing of expansion opportunity information between
1626         ruby bases and the text surrounding the ruby. This patch adds a bit on
1627         RenderText, m_contentIsKnownToFollow, which affects how expansion
1628         opportunities are handled at paint-time, as well as a bit on RenderRubyBase,
1629         m_isAfterExpansion, which affects how expansions are calculated when laying
1630         out a line. This patch also adds a field to RenderRubyBase which represents
1631         the base's starting position within a ruby. This field is necessary because
1632         an expansion from a line might occur at the very beginning of a ruby base,
1633         so we have to remember some state from expansion time to RenderRubyBase
1634         layout time.
1635
1636         Added more tests to fast/ruby/ruby-justification.html.
1637
1638         * rendering/InlineBox.h:
1639         (WebCore::InlineBox::setExpansionWithoutGrowing):
1640         (WebCore::InlineBox::expansion):
1641         * rendering/InlineFlowBox.cpp:
1642         (WebCore::InlineFlowBox::removeChild): Keep the bit on InlineTextBox up to
1643         date.
1644         (WebCore::InlineFlowBox::placeBoxRangeInInlineDirection): Set expansion
1645         information in InlineFlowBoxes so the total expansion for a whole line
1646         is held in the RootInlineBox's expansion.
1647         * rendering/InlineTextBox.h:
1648         (WebCore::InlineTextBox::expansionBehavior):
1649         * rendering/RenderBlockFlow.h:
1650         * rendering/RenderBlockLineLayout.cpp:
1651         (WebCore::RenderBlockFlow::updateRubyForJustifiedText):
1652         updateRubyForJustifiedText() had a bunch of problems with it. First of all,
1653         it didn't actually set the InlineBoxes as dirty, so the second layout pass
1654         sometimes wouldn't perform any updates. Secondarily, it didn't take
1655         overhangs into account. Thirdly, it didn't mark the ruby base and text as
1656         needing layout so that subsequent layouts would actually traverse into them.
1657         (WebCore::RenderBlockFlow::computeExpansionForJustifiedText):
1658         (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):
1659         This nested if triangle is super nasty, but I'm not sure of a better way to
1660         write it.
1661         (WebCore::updateRubyForJustifiedText): Deleted.
1662         (WebCore::computeExpansionForJustifiedText): Deleted.
1663         * rendering/RenderRubyBase.cpp:
1664         (WebCore::RenderRubyBase::RenderRubyBase):
1665         (WebCore::RenderRubyBase::adjustInlineDirectionLineBounds):
1666         * rendering/RenderRubyBase.h:
1667         * rendering/RenderRubyRun.cpp:
1668         (WebCore::RenderRubyRun::layout):
1669         * rendering/RenderText.cpp:
1670         (WebCore::RenderText::RenderText):
1671         * rendering/RenderText.h:
1672         (WebCore::RenderText::contentIsKnownToFollow):
1673         (WebCore::RenderText::setContentIsKnownToFollow):
1674
1675 2014-12-16  Jer Noble  <jer.noble@apple.com>
1676
1677         [iOS] Crash in WebKit::WebPageProxy::dispatchViewStateChange() tapping a link from another app while playing a video
1678         https://bugs.webkit.org/show_bug.cgi?id=139550
1679
1680         Reviewed by Anders Carlsson.
1681
1682         The existing "dispatch to WebThread, then release" model is insufficient and still
1683         can result in RefPtr race conditions between the main thread and the web thread.
1684         Make WebVideoFullscreenInterfaceAVKit a thread-safe ref-counted class, which
1685         eliminates the necessity of disptaching back to the web thread before releasing.
1686
1687         * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
1688         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1689         (WebVideoFullscreenInterfaceAVKit::setDuration): Use a strongThis model.
1690         (WebVideoFullscreenInterfaceAVKit::setCurrentTime): Ditto.
1691         (WebVideoFullscreenInterfaceAVKit::setRate): Ditto.
1692         (WebVideoFullscreenInterfaceAVKit::setVideoDimensions): Ditto.
1693         (WebVideoFullscreenInterfaceAVKit::setSeekableRanges): Ditto.
1694         (mediaSelectionOptions): Return a RetainPtr object.
1695         (WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions): Use a strongThis model.
1696         (WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions): Ditto.
1697         (WebVideoFullscreenInterfaceAVKit::setExternalPlayback): Ditto.
1698         (WebVideoFullscreenInterfaceAVKit::setupFullscreen): Ditto.
1699         (WebVideoFullscreenInterfaceAVKit::enterFullscreen): Ditto.
1700         (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Ditto.
1701         (WebVideoFullscreenInterfaceAVKit::cleanupFullscreen): Ditto.
1702         (WebVideoFullscreenInterfaceAVKit::setupFullscreenInternal): Added utility
1703             function. Lets us use the implied this pointer rather than an explicit
1704             strongThis.
1705         (WebVideoFullscreenInterfaceAVKit::enterFullscreenOptimized): Ditto.
1706         (WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard): Ditto.
1707         (WebVideoFullscreenInterfaceAVKit::exitFullscreenInternal): Ditto.
1708         (WebVideoFullscreenInterfaceAVKit::cleanupFullscreenInternal): Ditto.
1709         (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): Use a strongThis model.
1710
1711 2014-12-16  Ryosuke Niwa  <rniwa@webkit.org>
1712
1713         Nested template contents are not cloned by document.importNode
1714         https://bugs.webkit.org/show_bug.cgi?id=137619
1715
1716         Reviewed by Andreas Kling.
1717
1718         The bug was caused by Document.importNode not cloning HTMLTemplateElement's content.
1719
1720         Fixed the bug by sharing code between Document::importNode and Node::cloneNode by
1721         generalizing Node::cloneNodeInternal, added in r177314, by taking the owner document
1722         as an argument. The most of code changes are the result of adding this argument.
1723
1724         Document::importNode is the only function in which the actual logic changes.
1725         Note that the code to import TEXT_NODE, CDATA_SECTION_NODE, ENTITY_REFERENCE_NODE,
1726         PROCESSING_INSTRUCTION_NODE and COMMENT_NODE nodes are identical to that of cloneNode.
1727
1728         This patch removes the call to hasValidNamespaceForElements in ELEMENT_NODE but this
1729         should not introduce an observable behavior change since all instantiated elements
1730         should have a valid namespace in the first place.
1731
1732         Because DOCUMENT_NODE and DOCUMENT_TYPE_NODE cannot be imported and DOCUMENT_TYPE_NODE
1733         can only appear as a direct child of DOCUMENT_NODE, neither nodes nor unimplemented
1734         XPATH_NAMESPACE_NODE and XPATH_NAMESPACE_NODE can appear inside the recursive calls
1735         for ELEMENT_NODE and DOCUMENT_FRAGMENT_NODE nodes.
1736
1737         While importNode behaves differently from cloneNode for ATTRIBUTE_NODE, namely that
1738         it merges all of its child nodes, this behavior isn't present when recursing inside
1739         ELEMENT_NODE and DOCUMENT_FRAGMENT_NODE since we are using cloneDataFromElement.
1740
1741         Thus there should be no observable behavior changes for DOCUMENT_FRAGMENT_NODE and
1742         ELEMENT_NODE nodes either.
1743
1744         Test: fast/dom/HTMLTemplateElement/importNode-nested-templates.html
1745
1746         * dom/Attr.cpp:
1747         (WebCore::Attr::cloneNodeInternal):
1748         * dom/Attr.h:
1749         * dom/CDATASection.cpp:
1750         (WebCore::CDATASection::cloneNodeInternal):
1751         * dom/CDATASection.h:
1752         * dom/Comment.cpp:
1753         (WebCore::Comment::cloneNodeInternal):
1754         * dom/Comment.h:
1755         * dom/ContainerNode.cpp:
1756         (WebCore::ContainerNode::cloneChildNodes):
1757         * dom/Document.cpp:
1758         (WebCore::Document::importNode):
1759         (WebCore::Document::cloneNodeInternal):
1760         * dom/Document.h:
1761         * dom/DocumentFragment.cpp:
1762         (WebCore::DocumentFragment::cloneNodeInternal):
1763         * dom/DocumentFragment.h:
1764         * dom/DocumentType.cpp:
1765         (WebCore::DocumentType::cloneNodeInternal):
1766         * dom/DocumentType.h:
1767         * dom/Element.cpp:
1768         (WebCore::Element::cloneNodeInternal):
1769         (WebCore::Element::cloneElementWithChildren):
1770         (WebCore::Element::cloneElementWithoutChildren):
1771         (WebCore::Element::cloneElementWithoutAttributesAndChildren):
1772         * dom/Element.h:
1773         * dom/EntityReference.cpp:
1774         (WebCore::EntityReference::cloneNodeInternal):
1775         * dom/EntityReference.h:
1776         * dom/Node.h:
1777         (WebCore::Node::cloneNode):
1778         * dom/ProcessingInstruction.cpp:
1779         (WebCore::ProcessingInstruction::cloneNodeInternal):
1780         * dom/ProcessingInstruction.h:
1781         * dom/ShadowRoot.cpp:
1782         (WebCore::ShadowRoot::cloneNodeInternal):
1783         * dom/ShadowRoot.h:
1784         * dom/Text.cpp:
1785         (WebCore::Text::cloneNodeInternal):
1786         * dom/Text.h:
1787         * editing/ApplyStyleCommand.cpp:
1788         (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
1789         (WebCore::ApplyStyleCommand::applyInlineStyleChange):
1790         * editing/BreakBlockquoteCommand.cpp:
1791         (WebCore::BreakBlockquoteCommand::doApply):
1792         * editing/InsertParagraphSeparatorCommand.cpp:
1793         (WebCore::InsertParagraphSeparatorCommand::cloneHierarchyUnderNewBlock):
1794         (WebCore::InsertParagraphSeparatorCommand::doApply):
1795         * editing/ModifySelectionListLevel.cpp:
1796         (WebCore::IncreaseSelectionListLevelCommand::doApply):
1797         * editing/SplitElementCommand.cpp:
1798         (WebCore::SplitElementCommand::doApply):
1799         * editing/markup.cpp:
1800         (WebCore::createFragmentFromText):
1801         * html/HTMLKeygenElement.cpp:
1802         * html/HTMLScriptElement.cpp:
1803         (WebCore::HTMLScriptElement::cloneElementWithoutAttributesAndChildren):
1804         * html/HTMLScriptElement.h:
1805         * html/HTMLTemplateElement.cpp:
1806         (WebCore::HTMLTemplateElement::cloneNodeInternal):
1807         * html/HTMLTemplateElement.h:
1808         * html/shadow/SliderThumbElement.cpp:
1809         (WebCore::SliderThumbElement::cloneElementWithoutAttributesAndChildren):
1810         * html/shadow/SliderThumbElement.h:
1811         * html/track/WebVTTElement.cpp:
1812         (WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren):
1813         * html/track/WebVTTElement.h:
1814         * svg/SVGScriptElement.cpp:
1815         (WebCore::SVGScriptElement::cloneElementWithoutAttributesAndChildren):
1816         * svg/SVGScriptElement.h:
1817         * svg/SVGUseElement.cpp:
1818         (WebCore::SVGUseElement::buildShadowTree):
1819         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
1820
1821 2014-12-16  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
1822
1823         Document.contentType implementation
1824         https://bugs.webkit.org/show_bug.cgi?id=132269
1825
1826         Reviewed by Darin Adler.
1827
1828         Chromium merge from https://codereview.chromium.org/151653004
1829
1830         Tests: fast/dom/document-contentType-DOMParser.html
1831                fast/dom/document-contentType-createDocument.html
1832                fast/dom/document-contentType-data-uri.html
1833                fast/xsl/xslt-contentType.html
1834                http/tests/dom/document-contentType-meta.html
1835                http/tests/dom/document-contentType-xhr.html
1836                http/tests/dom/document-contentType.html
1837
1838         * dom/Document.cpp:
1839         (WebCore::Document::overrideMIMEType):
1840         (WebCore::Document::contentType):
1841         (WebCore::Document::cloneDataFromDocument):
1842         * dom/Document.h:
1843         * dom/Document.idl:
1844         * loader/DocumentLoader.cpp:
1845         (WebCore::DocumentLoader::currentContentType):
1846         * loader/DocumentLoader.h:
1847         * xml/XMLHttpRequest.cpp:
1848         (WebCore::XMLHttpRequest::responseXML):
1849         * xml/XSLTProcessor.cpp:
1850         (WebCore::XSLTProcessor::createDocumentFromSource):
1851
1852 2014-12-16  Anders Carlsson  <andersca@apple.com>
1853
1854         Put some common code in StorageNamespaceProvider
1855         https://bugs.webkit.org/show_bug.cgi?id=139682
1856
1857         Reviewed by Tim Horton.
1858
1859         We have code in two places that gets the local storage area from a given document,
1860         choosing either the local storage namespace or the transient local storage namespace.
1861         Move it to StorageNamespaceProvider::localStorageArea.
1862
1863         * bindings/js/ScriptController.cpp:
1864         * inspector/InspectorDOMStorageAgent.cpp:
1865         (WebCore::InspectorDOMStorageAgent::findStorageArea):
1866         * page/DOMWindow.cpp:
1867         (WebCore::DOMWindow::localStorage):
1868         * page/Navigator.cpp:
1869         * storage/StorageNamespaceProvider.cpp:
1870         (WebCore::StorageNamespaceProvider::localStorageArea):
1871         (WebCore::StorageNamespaceProvider::localStorageNamespace):
1872         * storage/StorageNamespaceProvider.h:
1873
1874 2014-12-16  Anders Carlsson  <andersca@apple.com>
1875
1876         Add FeatureCounterKeys.h to the Xcode project.
1877
1878         * WebCore.xcodeproj/project.pbxproj:
1879
1880 2014-12-16  Chris Dumez  <cdumez@apple.com>
1881
1882         REGRESSION (r163928): Animated GIFs are not resumed when translated into view using -webkit-transform
1883         https://bugs.webkit.org/show_bug.cgi?id=139672
1884         <rdar://problem/19260797>
1885
1886         Reviewed by Antti Koivisto.
1887
1888         After r163928, animated GIFs were not resumed when translated into view
1889         using '-webkit-transform' CSS property.
1890
1891         This broke animated gifs on the mobile version of weibo.com (which is
1892         one of the most popular blogging sites in China) on iPhone. e.g.
1893         http://m.weibo.cn/page/tpl?containerid=1005052150182731_-_WEIBO_SECOND_PROFILE_WEIBO&itemid=&title=全部微博
1894
1895         This patch calls FrameView::resumeVisibleImageAnimationsIncludingSubframes()
1896         after style recalc so that we resume animated images if they become visible
1897         after the style has changed. Doing so after layout wouldn't work because
1898         no layout happens in this case.
1899
1900         Test: fast/images/animated-gif-webkit-transform.html
1901
1902         * dom/Document.cpp:
1903         (WebCore::Document::recalcStyle):
1904
1905 2014-12-16  Sebastian Dröge  <sebastian@centricular.com>
1906
1907         [GStreamer] Fix deadlock when shutting down AudioDestination
1908         https://bugs.webkit.org/show_bug.cgi?id=139496
1909
1910         Reviewed by Philippe Normand.
1911
1912         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
1913         (webKitWebAudioSrcLoop):
1914         (webKitWebAudioSrcChangeState):
1915         Sometimes we would wait forever for the task to shut down. This
1916         was happening because of a bug in GStreamer that caused joining
1917         a paused task to deadlock.
1918
1919 2014-12-15  Dhi Aurrahman  <diorahman@rockybars.com>
1920
1921         Extend :lang()'s selector checker to handle ranges with '*' properly and perform matching within the ASCII range
1922         https://bugs.webkit.org/show_bug.cgi?id=139340
1923
1924         Reviewed by Benjamin Poulain.
1925
1926         Asterisk is considered as a valid subtag of a language range to express wildcard matching 
1927         in :lang()'s extended filtering procedure. The matching rules introduced by language 
1928         range with '*' is outlined in [1].
1929
1930         The matching of subtags is performed case-insensitively within the ASCII range[2].
1931
1932         [1] www.ietf.org/rfc/rfc4647.txt
1933         [2] http://dev.w3.org/csswg/selectors4/#the-lang-pseudo
1934
1935         Test: fast/selectors/lang-equal-ignoring-case.html
1936               fast/selectors/lang-valid-extended-filtering.html
1937
1938         * css/SelectorCheckerTestFunctions.h:
1939         (WebCore::equalIgnoringCaseWithinASCIIRange): Handle matching case-insensitively within the ASCII range.
1940         (WebCore::containslanguageSubtagMatchingRange):
1941         (WebCore::matchesLangPseudoClass):
1942
1943 2014-12-15  Chris Dumez  <cdumez@apple.com>
1944
1945         [iOS] Add feature counting support
1946         https://bugs.webkit.org/show_bug.cgi?id=139652
1947         <rdar://problem/19255690>
1948
1949         Reviewed by Gavin Barraclough.
1950
1951         Use FeatureCounter API to log PageCache failure reasons
1952         as well as its success rate.
1953
1954         No new tests, no behavior change.
1955
1956         * history/PageCache.cpp:
1957         (WebCore::logCanCacheFrameDecision):
1958         (WebCore::logCanCachePageDecision):
1959         (WebCore::PageCache::canCache):
1960         * platform/FeatureCounterKeys.h: Added.
1961
1962 2014-12-15  Beth Dakin  <bdakin@apple.com>
1963
1964         Speculative build fix.
1965
1966         * platform/spi/mac/LookupSPI.h:
1967
1968 2014-12-15  Beth Dakin  <bdakin@apple.com>
1969
1970         Speculative build fix.
1971
1972         * platform/spi/mac/LookupSPI.h:
1973
1974 2014-12-15  Jer Noble  <jer.noble@apple.com>
1975
1976         Switching src of <video> with clipping layer results in empty black square.
1977         https://bugs.webkit.org/show_bug.cgi?id=139650
1978
1979         Reviewed by Simon Fraser.
1980
1981         Test: compositing/video-clip-change-src.html
1982
1983         When the contentsLayer changes after a contentsClippingLayer has already been created, make sure to parent the
1984         new contentsLayer, as updateRects() will only reparent when first creating a contentsClippingLayer.
1985
1986         * platform/graphics/ca/GraphicsLayerCA.cpp:
1987         (WebCore::GraphicsLayerCA::setContentsToPlatformLayer):
1988
1989 2014-12-15  Beth Dakin  <bdakin@apple.com>
1990
1991         Make lookup an immediate action instead of an action menu item
1992         https://bugs.webkit.org/show_bug.cgi?id=139661
1993         -and corresponding-
1994         rdar://problem/19198414
1995
1996         Reviewed by Tim Horton.
1997
1998         New SPI.
1999         * platform/spi/mac/LookupSPI.h:
2000
2001 2014-12-12  Anders Carlsson  <andersca@apple.com>
2002
2003         Get rid of the DONT_FINALIZE_ON_MAIN_THREAD #define
2004         https://bugs.webkit.org/show_bug.cgi?id=139613
2005
2006         Reviewed by Sam Weinig.
2007
2008         * WebCore.exp.in:
2009         Update symbols.
2010
2011         * WebCore.xcodeproj/project.pbxproj:
2012         Remove -Wno-deprecated-declarations from the WebCoreObjCExtras.mm build flags.
2013
2014         * platform/mac/WebCoreObjCExtras.h:
2015         If OBJC_NO_GC is defined to 1, just make WebCoreObjCFinalizeOnMainThread a no-op inline function.
2016
2017         * platform/mac/WebCoreObjCExtras.mm:
2018         (WebCoreObjCFinalizeOnMainThread):
2019         Move this to the .h file for easier inlining.
2020
2021         (WebCoreObjCScheduleDeallocateOnMainThread):
2022         Use a lambda.
2023
2024 2014-12-15  Gavin Barraclough  <barraclough@apple.com>
2025
2026         Separate counted and hysteresis activities in PageThrottler
2027         https://bugs.webkit.org/show_bug.cgi?id=139657
2028
2029         Reviewed by Sam Weinig.
2030
2031         Currently all activities funnel into a common hysteresis mechanism, the result of
2032         which is combined with the visually idle state, the result of which in turn drives
2033         a UserActivity::Impl.
2034
2035         This is a first refactoring towards moving the UserActivity out to WebKit2. Use
2036         m_hysteresis only of the impulse activities (plugin evaluation, user input), and
2037         flatten the three types of activities (impulse, counted, ViewState) to all directly
2038         control a UserActivity. Switch from a UserActivity::Impl to a UserActivity since
2039         this will provide hysteresis for media activity.
2040
2041         * page/PageThrottler.cpp:
2042         (WebCore::m_pageActivityCounter):
2043             - when the RefCounter changes just call updateUserActivity directly, removeed redundant call to updateUserActivity.
2044         (WebCore::PageThrottler::createUserActivity):
2045             - m_activity is now a UserActivity.
2046         (WebCore::PageThrottler::updateUserActivity):
2047             - previously just checked m_hysteresis for activity; now check m_pageActivityCounter too.
2048         (WebCore::PageThrottler::pageActivityCounterValueDidChange): Deleted.
2049             - no longer needed; when the RefCounter changes just call updateUserActivity directly.
2050         * page/PageThrottler.h:
2051             - removed pageActivityCounterValueDidChange, m_activity is now a UserActivity.
2052
2053 2014-12-15  Commit Queue  <commit-queue@webkit.org>
2054
2055         Unreviewed, rolling out r177284.
2056         https://bugs.webkit.org/show_bug.cgi?id=139658
2057
2058         "Breaks API tests and LayoutTests on Yosemite Debug"
2059         (Requested by msaboff on #webkit).
2060
2061         Reverted changeset:
2062
2063         "Make sure range based iteration of Vector<> still receives
2064         bounds checking"
2065         https://bugs.webkit.org/show_bug.cgi?id=138821
2066         http://trac.webkit.org/changeset/177284
2067
2068 2014-12-15  Ryosuke Niwa  <rniwa@webkit.org>
2069
2070         cloneNode(true) does not clone nested template elements' contents
2071         https://bugs.webkit.org/show_bug.cgi?id=137755
2072
2073         Reviewed by Darin Adler.
2074
2075         The bug was caused by cloneChildNodes not copying template element's content.
2076
2077         Fixed the bug by adding the third behavior (CloneContent) to the polymorphic
2078         cloneNodeInternal, which copies template element's content but not its children,
2079         in addition to the existing CloneSelf (deep=false) and CloneChildren (deep=true).
2080
2081         Test: fast/dom/HTMLTemplateElement/cloneNode-nested-templates.html
2082
2083         * dom/Attr.cpp:
2084         (WebCore::Attr::cloneNodeInternal): Renamed from cloneNode.
2085         * dom/Attr.h:
2086         * dom/CDATASection.cpp:
2087         (WebCore::CDATASection::cloneNodeInternal): Renamed from cloneNode.
2088         * dom/CDATASection.h:
2089         * dom/Comment.cpp:
2090         (WebCore::Comment::cloneNodeInternal): Renamed from cloneNode.
2091         * dom/Comment.h:
2092         * dom/ContainerNode.cpp:
2093         (WebCore::ContainerNode::cloneChildNodes): Calls cloneNode with CloneContent.
2094         * dom/Document.cpp:
2095         (WebCore::Document::cloneNodeInternal): Renamed from cloneNode.
2096         * dom/Document.h:
2097         * dom/DocumentFragment.cpp:
2098         (WebCore::DocumentFragment::cloneNodeInternal): Renamed from cloneNode.
2099         * dom/DocumentFragment.h:
2100         * dom/DocumentType.cpp:
2101         (WebCore::DocumentType::cloneNodeInternal): Renamed from cloneNode.
2102         * dom/DocumentType.h:
2103         * dom/Element.cpp:
2104         (WebCore::Element::cloneNodeInternal): Renamed from cloneNode.
2105         * dom/Element.h:
2106         * dom/EntityReference.cpp:
2107         (WebCore::EntityReference::cloneNodeInternal): Renamed from cloneNode.
2108         * dom/EntityReference.h:
2109         * dom/Node.h:
2110         (WebCore::Node::cloneNode): Added. It calls cloneNodeInternal with CloneSelf or CloneChildren.
2111         * dom/ProcessingInstruction.cpp:
2112         (WebCore::ProcessingInstruction::cloneNodeInternal): Renamed from cloneNode.
2113         * dom/ProcessingInstruction.h:
2114         * dom/ShadowRoot.cpp:
2115         (WebCore::ShadowRoot::cloneNodeInternal): Renamed from cloneNode. Also moved from ShadowRoot.h.
2116         * dom/ShadowRoot.h:
2117         * dom/Text.cpp:
2118         (WebCore::Text::cloneNodeInternal): Renamed from cloneNode.
2119         * dom/Text.h:
2120         * html/HTMLTemplateElement.cpp:
2121         (WebCore::HTMLTemplateElement::cloneNodeInternal): Renamed from cloneNode. This is the only
2122         function in which CloneContent results in a different behavior from CloneSelf.
2123         * html/HTMLTemplateElement.h:
2124
2125 2014-12-15  Benjamin Poulain  <bpoulain@apple.com>
2126
2127         Unify the various serialization of selector list
2128         https://bugs.webkit.org/show_bug.cgi?id=139606
2129
2130         Reviewed by Andreas Kling.
2131
2132         There were code in various place to build a string from the selectors contained
2133         in a selecor list.
2134
2135         This patch adds a single function to do that: buildSelectorsText(). All the call sites
2136         were modified to use it.
2137
2138         The serialization of :-webkit-any() gets fixed as a result.
2139
2140         * css/CSSSelector.cpp:
2141         (WebCore::CSSSelector::selectorText):
2142         (WebCore::appendSelectorList): Deleted.
2143         * css/CSSSelectorList.cpp:
2144         (WebCore::CSSSelectorList::selectorsText):
2145         (WebCore::CSSSelectorList::buildSelectorsText):
2146         * css/CSSSelectorList.h:
2147         * css/CSSStyleRule.cpp:
2148         (WebCore::CSSStyleRule::generateSelectorText):
2149         * css/WebKitCSSRegionRule.cpp:
2150         (WebCore::WebKitCSSRegionRule::cssText):
2151
2152 2014-12-15  Antti Koivisto  <antti@apple.com>
2153
2154         Try to fix iOS build.
2155
2156         * WebCore.exp.in:
2157
2158 2014-12-15  Javier Fernandez  <jfernandez@igalia.com>
2159
2160         Floats Don't Overhang Their Block Formatting Contex
2161         https://bugs.webkit.org/show_bug.cgi?id=139476
2162
2163         Reviewed by David Hyatt.
2164
2165         From Blink r172530 by <robhogan@gmail.com>
2166
2167         Floats Don't Overhang Their Block Formatting Context Per
2168         http://www.w3.org/TR/CSS2/visuren.html#float-position: "References
2169         to [the elements] in the [rules that govern the behaviour of
2170         floats] refer only to other elements in the same block formatting
2171         context as the float."
2172
2173         This means we don't need to look for intruding or overhanging
2174         floats in boxes that establish a new block formatting
2175         context. Even that we don't have a test breaking this rule it
2176         seems we are doing unnecessary work in
2177         rebuildFloatsFromIntruding() so make sure we avoid adding floats
2178         from different block formatting contexts.
2179
2180         Test:
2181         fast/block/float/floats-do-not-overhang-from-block-formatting-context.html
2182
2183         * rendering/RenderBlockFlow.cpp:
2184         (WebCore::RenderBlockFlow::addIntrudingFloats):
2185
2186 2014-12-15  Myles C. Maxfield  <mmaxfield@apple.com>
2187
2188         Unreviewed build fix after r177301
2189
2190         * html/ColorInputType.cpp:
2191         (WebCore::ColorInputType::elementRectRelativeToRootView):
2192
2193 2014-12-15  Timothy Horton  <timothy_horton@apple.com>
2194
2195         Implement Data Detectors immediate actions for WebKit2
2196         https://bugs.webkit.org/show_bug.cgi?id=139617
2197         <rdar://problem/19198539>
2198
2199         Reviewed by Beth Dakin.
2200
2201         * platform/spi/mac/DataDetectorsSPI.h:
2202         Add some new SPI.
2203
2204 2014-12-12  Simon Fraser  <simon.fraser@apple.com>
2205
2206         REGRESSION (r168217): Images are cropped out during animation at jetblue.com
2207         https://bugs.webkit.org/show_bug.cgi?id=136410
2208         rdar://problem/18188533
2209
2210         Reviewed by Dean Jackson.
2211         
2212         During GraphicsLayer flushing, for tiled layers we can compute a visible rect using
2213         the current state of an animation, which is obtained via the AnimationController.
2214         If that animation was running in a subframe, AnimationController could use a stale
2215         beginAnimationUpdateTime since no-one called its beginAnimationUpdate(). That
2216         resulted in an incorrect computation of the visible rect, resulting in missing tiles.
2217         
2218         There are two parts to this fix. First, add an assertion that beginAnimationUpdateTime()
2219         is being called inside an animation update block. This required moving m_beginAnimationUpdateCount
2220         into AnimationControllerPrivate, and changes to endAnimationUpdate().
2221         
2222         The second is adding a AnimationUpdateBlock to getAnimatedStyleForRenderer(), which
2223         can be called outside of style resolution. We also need some in other API functions.
2224         
2225         Testing revealed that layout can call via layoutOverflowRectForPropagation(), suggesting
2226         that we should have an animation batch inside FrameView::layout(). In addition, a single
2227         resolveStyle/layout should use the same animationBeginTime, so we add a batch to 
2228         updateLayoutAndStyleIfNeededRecursive().
2229         
2230         Identical to the patch that was rolled out in r177269 with the addition of a 
2231         Ref<Frame> protector(m_frame) in AnimationControllerPrivate::animationTimerFired()
2232         that ensures that the AnimationControllerPrivate is kept alive for the scope of
2233         the AnimationPrivateUpdateBlock, when a transitionEnd event destroys an iframe.
2234         
2235         No test because it's timing-dependent. Existing tests exercise the new assertion.
2236
2237         * css/CSSComputedStyleDeclaration.cpp:
2238         (WebCore::computeRenderStyleForProperty):
2239         * page/FrameView.cpp:
2240         (WebCore::FrameView::layout):
2241         (WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
2242         * page/animation/AnimationController.cpp:
2243         (WebCore::AnimationPrivateUpdateBlock::AnimationPrivateUpdateBlock):
2244         (WebCore::AnimationPrivateUpdateBlock::~AnimationPrivateUpdateBlock):
2245         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
2246         (WebCore::AnimationControllerPrivate::animationTimerFired):
2247         (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
2248         (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
2249         (WebCore::AnimationControllerPrivate::beginAnimationUpdateTime):
2250         (WebCore::AnimationControllerPrivate::beginAnimationUpdate):
2251         (WebCore::AnimationControllerPrivate::endAnimationUpdate):
2252         (WebCore::AnimationControllerPrivate::getAnimatedStyleForRenderer):
2253         (WebCore::AnimationController::AnimationController):
2254         (WebCore::AnimationController::notifyAnimationStarted):
2255         (WebCore::AnimationController::pauseAnimationAtTime):
2256         (WebCore::AnimationController::pauseTransitionAtTime):
2257         (WebCore::AnimationController::resumeAnimationsForDocument):
2258         (WebCore::AnimationController::startAnimationsIfNotSuspended):
2259         (WebCore::AnimationController::beginAnimationUpdate):
2260         (WebCore::AnimationController::endAnimationUpdate):
2261         * page/animation/AnimationController.h:
2262         * page/animation/AnimationControllerPrivate.h:
2263
2264 2014-12-12  Simon Fraser  <simon.fraser@apple.com>
2265
2266         REGRESSION (r168217): Images are cropped out during animation at jetblue.com
2267         https://bugs.webkit.org/show_bug.cgi?id=136410
2268
2269         Reviewed by Dean Jackson.
2270
2271         We were hitting the new assertion under Page::setPageScaleFactor(), which
2272         calls recalcStyle(), so move the AnimationUpdateBlock from updateStyleIfNeeded()
2273         to recalcStyle().
2274
2275         * dom/Document.cpp:
2276         (WebCore::Document::recalcStyle):
2277         (WebCore::Document::updateStyleIfNeeded):
2278
2279 2014-12-15  Myles C. Maxfield  <mmaxfield@apple.com>
2280
2281         Addressing post-review comments in r177035
2282         https://bugs.webkit.org/show_bug.cgi?id=139557
2283
2284         Reviewed by Darin Adler.
2285
2286         This patch deletes the helper functions rendererBoundingBox() and rendererAnchorRect() and
2287         migrates callers to using renderers directly.
2288
2289         It also improves the comment in RenderElement.h regarding RenderElement::anchorRect().
2290
2291         No new tests because this is simply refactoring.
2292
2293         * WebCore.exp.in: Delete exported symbol for rendererBoundingBox()
2294         * accessibility/AccessibilitySlider.cpp:
2295         (WebCore::AccessibilitySliderThumb::elementRect): Migrate off rendererBoundingBox()
2296         * dom/ContainerNode.cpp:
2297         (WebCore::rendererAnchorRect): Deleted.
2298         * dom/ContainerNode.h:
2299         * dom/Node.cpp:
2300         (WebCore::rendererBoundingBox): Deleted.
2301         * dom/Node.h:
2302         * html/ColorInputType.cpp:
2303         (WebCore::ColorInputType::elementRectRelativeToRootView): Migrate off rendererBoundingBox().
2304         * html/HTMLInputElement.cpp:
2305         (WebCore::HTMLInputElement::setupDateTimeChooserParameters): Ditto.
2306         * html/ValidationMessage.cpp:
2307         (WebCore::ValidationMessage::buildBubbleTree): Ditto.
2308         * page/FrameView.cpp:
2309         (WebCore::FrameView::scrollElementToRect): Migrate off rendererAnchorRect().
2310         (WebCore::FrameView::scrollToAnchor): Ditto.
2311         * page/SpatialNavigation.cpp:
2312         (WebCore::nodeRectInAbsoluteCoordinates): Migrate off rendererBoundingBox().
2313         * rendering/RenderElement.h:
2314
2315 2014-12-15  Myles C. Maxfield  <mmaxfield@apple.com>
2316
2317         Delete Notation because we don't use it
2318         https://bugs.webkit.org/show_bug.cgi?id=139171
2319
2320         Reviewed by Kent Tamura.
2321
2322         No tests because this is un-exposing something that never gets instantiated.
2323
2324         * CMakeLists.txt:
2325         * DerivedSources.cpp:
2326         * DerivedSources.make:
2327         * WebCore.exp.in:
2328         * WebCore.order:
2329         * WebCore.vcxproj/WebCore.vcxproj:
2330         * WebCore.vcxproj/WebCore.vcxproj.filters:
2331         * WebCore.xcodeproj/project.pbxproj:
2332         * bindings/gobject/WebKitDOMNodeFilter.h:
2333         * bindings/gobject/WebKitDOMNodeFilter.symbols:
2334         * bindings/gobject/WebKitDOMPrivate.cpp:
2335         (WebKit::wrap):
2336         * bindings/gobject/webkitdom.symbols:
2337         * bindings/js/JSNodeCustom.cpp:
2338         (WebCore::createWrapperInline):
2339         * bindings/objc/DOM.mm:
2340         (kitClass):
2341         * bindings/objc/DOMCore.h:
2342         * bindings/objc/PublicDOMInterfaces.h:
2343         * dom/DOMAllInOne.cpp:
2344         * dom/Document.cpp:
2345         (WebCore::Document::importNode):
2346         (WebCore::Document::adoptNode):
2347         (WebCore::Document::childTypeAllowed):
2348         (WebCore::Document::canReplaceChild):
2349         * dom/Node.cpp:
2350         (WebCore::Node::dumpStatistics):
2351         (WebCore::Node::isDefaultNamespace):
2352         (WebCore::Node::lookupPrefix):
2353         (WebCore::Node::lookupNamespaceURI):
2354         (WebCore::appendTextContent):
2355         (WebCore::Node::setTextContent):
2356         * dom/Node.h:
2357         * dom/Node.idl:
2358         * dom/NodeFilter.h:
2359         * dom/NodeFilter.idl:
2360         * dom/Notation.cpp: Removed.
2361         * dom/Notation.h: Removed.
2362         * dom/Notation.idl: Removed.
2363         * dom/Range.cpp:
2364         (WebCore::lengthOfContentsInNode):
2365         (WebCore::Range::processContentsBetweenOffsets):
2366         (WebCore::Range::insertNode):
2367         (WebCore::Range::checkNodeWOffset):
2368         (WebCore::Range::checkNodeBA):
2369         (WebCore::Range::selectNode):
2370         (WebCore::Range::selectNodeContents):
2371         (WebCore::Range::surroundContents):
2372         * editing/MarkupAccumulator.cpp:
2373         (WebCore::MarkupAccumulator::appendStartMarkup):
2374         * xml/XPathUtil.cpp:
2375         (WebCore::XPath::isValidContextNode):
2376
2377 2014-12-15  Gavin Barraclough  <barraclough@apple.com>
2378
2379         Change HysteresisActivity to use a lambda
2380         https://bugs.webkit.org/show_bug.cgi?id=139636
2381
2382         Reviewed by Darin Adler.
2383
2384         The current implementation provides notifications via callbacks to a delegate. Using a delegate
2385         with callbacks is limiting a number of ways. The callback names are very ambiguous, the callbacks
2386         must either be on a separate object (more boilerplate), or the callback must be public for
2387         HysteresisActivity to call them, or friends get involved. Without the boilerplate of extra
2388         delegate objects it's hard to scale use of these objects - a single object can't serve as a
2389         delegate for multiple HysteresisActivity members.
2390
2391         Instead, make HysteresisActivity take a lambda to callback on state change. To simplify, changed
2392         HysteresisState to only track Started/Stopped states (removed WillStopPendingTimeout).
2393
2394         * WebCore.exp.in:
2395             - removed exports of deleted functions.
2396         * page/PageThrottler.cpp:
2397         (WebCore::PageThrottler::PageThrottler):
2398             - m_hysteresis lambda calls updateUserActivity.
2399         (WebCore::PageThrottler::pageActivityCounterValueDidChange):
2400             - ASSERT updated due to removal of WillStopPendingTimeout state.
2401         (WebCore::PageThrottler::started): Deleted.
2402         (WebCore::PageThrottler::stopped): Deleted.
2403             - functionality replaced by lambda.
2404         * page/PageThrottler.h:
2405             - HysteresisActivity is no longer templated on delegate type, removed function declarations & friend.
2406         * platform/HysteresisActivity.h:
2407         (WebCore::HysteresisActivity::HysteresisActivity):
2408             - HysteresisActivity takes a lambda, not a delegate.
2409         (WebCore::HysteresisActivity::start):
2410             - delegate call -> callback.
2411         (WebCore::HysteresisActivity::state):
2412             - simplified to remove WillStopPendingTimeout.
2413         (WebCore::HysteresisActivity::hysteresisTimerFired):
2414             - delegate call -> callback.
2415         * platform/UserActivity.cpp:
2416         (WebCore::UserActivity::UserActivity):
2417             - HysteresisActivity lambda calls hysteresisUpdated.
2418         (WebCore::UserActivity::hysteresisUpdated):
2419         (WebCore::UserActivity::started): Deleted.
2420         (WebCore::UserActivity::stopped): Deleted.
2421             - started/stopped -> hysteresisUpdated.
2422         * platform/UserActivity.h:
2423             - started/stopped -> hysteresisUpdated, removed friend.
2424
2425 2014-12-15  Antti Koivisto  <antti@apple.com>
2426
2427         WebKit level persistent caching
2428         https://bugs.webkit.org/show_bug.cgi?id=30322
2429
2430         Reviewed by Sam Weinig.
2431
2432         Test: http/tests/cache/disk-cache-validation.html
2433
2434         * WebCore.exp.in:
2435         * inspector/InspectorResourceAgent.cpp:
2436         (WebCore::buildObjectForResourceResponse):
2437         * platform/network/ResourceResponseBase.cpp:
2438         (WebCore::ResourceResponseBase::ResourceResponseBase):
2439         (WebCore::ResourceResponseBase::source):
2440         (WebCore::ResourceResponseBase::setSource):
2441         (WebCore::ResourceResponseBase::wasCached): Deleted.
2442         (WebCore::ResourceResponseBase::setWasCached): Deleted.
2443
2444             Replace wasCached bit with Source enum.
2445             This is useful for testing.
2446
2447         * platform/network/ResourceResponseBase.h:
2448         (WebCore::ResourceResponseBase::containsCertificateInfo):
2449         (WebCore::ResourceResponseBase::encode):
2450         (WebCore::ResourceResponseBase::decode):
2451         * testing/Internals.cpp:
2452         (WebCore::Internals::xhrResponseSource):
2453         (WebCore::Internals::clearMemoryCache):
2454         * testing/Internals.h:
2455         * testing/Internals.idl:
2456
2457             Testing support.
2458
2459         * xml/XMLHttpRequest.h:
2460
2461 2014-12-15  Andreas Kling  <akling@apple.com>
2462
2463         Purge PassRefPtr from FocusEvent code.
2464         <https://webkit.org/b/139647>
2465
2466         Reviewed by Anders Carlsson.
2467
2468         Convert FocusEvent-related code from using PassRefPtr to using RefPtr&& instead.
2469
2470         * dom/Document.cpp:
2471         (WebCore::Document::setFocusedElement):
2472         * dom/Element.cpp:
2473         (WebCore::Element::dispatchFocusInEvent):
2474         (WebCore::Element::dispatchFocusOutEvent):
2475         (WebCore::Element::dispatchFocusEvent):
2476         (WebCore::Element::dispatchBlurEvent):
2477         * dom/Element.h:
2478         * dom/FocusEvent.cpp:
2479         (WebCore::FocusEvent::FocusEvent):
2480         * dom/FocusEvent.h:
2481         * html/HTMLFormControlElement.cpp:
2482         (WebCore::HTMLFormControlElement::dispatchBlurEvent):
2483         * html/HTMLFormControlElement.h:
2484         * html/HTMLSelectElement.cpp:
2485         (WebCore::HTMLSelectElement::dispatchFocusEvent):
2486         (WebCore::HTMLSelectElement::dispatchBlurEvent):
2487         * html/HTMLSelectElement.h:
2488         * html/HTMLTextFormControlElement.cpp:
2489         (WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
2490         (WebCore::HTMLTextFormControlElement::dispatchBlurEvent):
2491         * html/HTMLTextFormControlElement.h:
2492         * page/FocusController.cpp:
2493         (WebCore::dispatchEventsOnWindowAndFocusedElement):
2494
2495 2014-12-15  Myles C. Maxfield  <mmaxfield@apple.com>
2496
2497         [iOS] Codepoints not associated with languages are drawn as boxes
2498         https://bugs.webkit.org/show_bug.cgi?id=138906
2499
2500         Reviewed by Darin Adler.
2501
2502         Use SPI CTFontCreateForCharacters(), but only if we don't already know what to do
2503         with the characters.
2504
2505         Test: platform/ios-simulator/fast/text/non-language-font-fallback.html
2506
2507         * platform/graphics/ios/FontCacheIOS.mm:
2508         (WebCore::FontCache::systemFallbackForCharacters):
2509         * platform/spi/cocoa/CoreTextSPI.h:
2510
2511 2014-12-15  Bem Jones-Bey  <bjonesbe@adobe.com>
2512
2513         [CSS Shapes] Fix StyleBuilder code to use CSSValueNone to match spec and other code
2514         https://bugs.webkit.org/show_bug.cgi?id=139601
2515
2516         Reviewed by Chris Dumez.
2517
2518         Change the code to properly use CSSValueNone instead of CSSValueAuto.
2519         Asserts have been added to catch similar errors in the future.
2520         In doing this change, it became apparent that there is nothing
2521         special about the shape-outside property that requires custom code, so
2522         it was changed to use a standard converter function. 
2523
2524         No change observable via LayoutTests.
2525
2526         * css/CSSPropertyNames.in: Use a converter instead of custom code.
2527         * css/StyleBuilderConverter.h:
2528         (WebCore::isImageShape): Helper function so that isImageSetValue can
2529             be properly guarded.
2530         (WebCore::StyleBuilderConverter::convertShapeValue): Format as a
2531             converter instead of custom code.
2532         * css/StyleBuilderCustom.h:
2533         (WebCore::StyleBuilderCustom::applyValueWebkitShapeOutside): Deleted.
2534
2535 2014-12-15  Oliver Hunt  <oliver@apple.com>
2536
2537         Make sure range based iteration of Vector<> still receives bounds checking
2538         https://bugs.webkit.org/show_bug.cgi?id=138821
2539
2540         Reviewed by Mark Lam.
2541
2542         Update to deal with different iterator type.
2543
2544         * bindings/js/SerializedScriptValue.cpp:
2545         (WebCore::CloneDeserializer::deserializeString):
2546         * editing/TextIterator.cpp:
2547         (WebCore::SearchBuffer::isBadMatch):
2548         * page/mac/ServicesOverlayController.mm:
2549         (WebCore::ServicesOverlayController::buildSelectionHighlight):
2550         * platform/graphics/SegmentedFontData.cpp:
2551         (WebCore::SegmentedFontData::fontDataForCharacter):
2552         (WebCore::SegmentedFontData::containsCharacter):
2553         (WebCore::SegmentedFontData::isLoading):
2554         * platform/graphics/WOFFFileFormat.cpp:
2555         (WebCore::convertWOFFToSfnt):
2556         * platform/graphics/cairo/GradientCairo.cpp:
2557         (WebCore::Gradient::platformGradient):
2558         * platform/image-decoders/gif/GIFImageDecoder.cpp:
2559         (WebCore::GIFImageDecoder::clearFrameBufferCache):
2560         * rendering/RenderBox.cpp:
2561         (WebCore::RenderBox::paintFillLayers):
2562         * rendering/style/GridResolvedPosition.cpp:
2563         (WebCore::firstNamedGridLineBeforePosition):
2564         (WebCore::GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
2565         * svg/SVGFontElement.cpp:
2566         (WebCore::kerningForPairOfStringsAndGlyphs):
2567         * svg/SVGPathByteStream.h:
2568         (WebCore::SVGPathByteStream::append):
2569         * xml/XPathNodeSet.h:
2570         (WebCore::XPath::NodeSet::begin):
2571         (WebCore::XPath::NodeSet::end):
2572
2573 2014-12-15  Chris Dumez  <cdumez@apple.com>
2574
2575         Move '-webkit-text-decoration-skip' to the new StyleBuilder
2576         https://bugs.webkit.org/show_bug.cgi?id=139633
2577
2578         Reviewed by Darin Adler.
2579
2580         Move '-webkit-text-decoration-skip' to the new StyleBuilder by
2581         introducing a new TextDecorationSkip converter.
2582
2583         No new tests, no behavior change.
2584
2585         * css/CSSPropertyNames.in:
2586         * css/DeprecatedStyleBuilder.cpp:
2587         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
2588         (WebCore::valueToDecorationSkip): Deleted.
2589         (WebCore::ApplyPropertyTextDecorationSkip::applyValue): Deleted.
2590         (WebCore::ApplyPropertyTextDecorationSkip::createHandler): Deleted.
2591         * css/StyleBuilderConverter.h:
2592         (WebCore::StyleBuilderConverter::valueToDecorationSkip):
2593         (WebCore::StyleBuilderConverter::convertTextDecorationSkip):
2594
2595 2014-12-15  Bartlomiej Gajda  <b.gajda@samsung.com>
2596
2597         [MSE] Prevent SourceBuffer monitoring algorithm from triggering a HAVE_NOTHING to HAVE_METADATA transition.
2598         https://bugs.webkit.org/show_bug.cgi?id=139444
2599
2600         Reviewed by Jer Noble.
2601
2602         In case of 2 SourceBuffers, there can be transition to HaveMetadata from monitorSourceBuffers,
2603         even though second SourceBuffer did not receive init segment - we can't query for it's metadata
2604         such as width/height (if second one was video), so we shouldn't fire the event.
2605         W3 Bug reference : https://www.w3.org/Bugs/Public/show_bug.cgi?id=27542
2606
2607         Test: media/media-source/media-source-loadedmetada-with-two-sourcebuffers.html
2608
2609         * Modules/mediasource/MediaSource.cpp:
2610         (WebCore::MediaSource::monitorSourceBuffers):
2611         * Modules/mediasource/SourceBuffer.h:
2612         * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
2613         (WebCore::mimeTypeCache):
2614
2615 2014-12-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2616
2617         Move WebCore/platform/text to std::unique_ptr 
2618         https://bugs.webkit.org/show_bug.cgi?id=139395
2619
2620         Reviewed by Darin Adler.
2621
2622         As a step to use std::unique_ptr<>, this patch replaces OwnPtr|PassOwnPtr with
2623         std::unique_ptr<> | std::make_unique<>.
2624
2625         * dom/Document.h:
2626         * platform/text/LineBreakIteratorPoolICU.h:
2627         (WebCore::LineBreakIteratorPool::LineBreakIteratorPool):
2628         (WebCore::LineBreakIteratorPool::create): Deleted.
2629         * platform/text/LocaleICU.cpp:
2630         (WebCore::Locale::create):
2631         (WebCore::LocaleICU::createLabelVector):
2632         (WebCore::createFallbackMonthLabels):
2633         (WebCore::createFallbackAMPMLabels):
2634         (WebCore::LocaleICU::initializeDateTimeFormat):
2635         (WebCore::LocaleICU::shortMonthLabels):
2636         (WebCore::LocaleICU::create): Deleted.
2637         (WebCore::LocaleICU::standAloneMonthLabels): Deleted.
2638         (WebCore::LocaleICU::shortStandAloneMonthLabels): Deleted.
2639         * platform/text/LocaleICU.h:
2640         * platform/text/LocaleNone.cpp:
2641         (WebCore::Locale::create):
2642         * platform/text/PlatformLocale.h:
2643         (WebCore::Locale::createDefault):
2644         * platform/text/TextCodecLatin1.cpp:
2645         * platform/text/TextCodecUTF16.cpp:
2646         * platform/text/TextEncoding.cpp:
2647         * platform/text/mac/LocaleMac.h:
2648         * platform/text/mac/LocaleMac.mm:
2649         (WebCore::Locale::create):
2650         (WebCore::LocaleMac::create):
2651         * platform/text/mac/TextCodecMac.cpp:
2652         * platform/text/win/LocaleWin.cpp:
2653         (WebCore::Locale::create):
2654         (WebCore::LocaleWin::create):
2655         * platform/text/win/LocaleWin.h:
2656         * platform/text/win/TextCodecWin.cpp:
2657         (WebCore::newTextCodecWin):
2658
2659 2014-12-15  Xavier Claessens  <xavier.claessens@collabora.com>
2660
2661         [GStreamer] the webkitwebsrc element can stale
2662         https://bugs.webkit.org/show_bug.cgi?id=138425
2663
2664         Reviewed by Philippe Normand.
2665
2666         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2667         (removeTimeoutSources):
2668         (webKitWebSrcStart):
2669         (webKitWebSrcChangeState):
2670
2671 2014-12-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2672
2673         [GTK] Remove GamepadDeviceGtk::create()
2674         https://bugs.webkit.org/show_bug.cgi?id=139637
2675
2676         Reviewed by Carlos Garcia Campos.
2677
2678         std::make_unique<> can replace GamepadDeviceGtk::create() factory function.
2679
2680         * platform/gtk/GamepadsGtk.cpp: Add "explicit" to GamepadsGtk constructor.
2681         (WebCore::GamepadsGtk::registerDevice):
2682         (WebCore::GamepadDeviceGtk::create): Deleted.
2683
2684 2014-12-15  Chris Dumez  <cdumez@apple.com>
2685
2686         Move 'counter-increment' / 'counter-reset' to the new StyleBuilder
2687         https://bugs.webkit.org/show_bug.cgi?id=139635
2688
2689         Reviewed by Antti Koivisto.
2690
2691         Move 'counter-increment' / 'counter-reset' to the new StyleBuilder by
2692         using custom code.
2693
2694         No new tests, no behavior change.
2695
2696         * css/CSSPropertyNames.in:
2697         * css/DeprecatedStyleBuilder.cpp:
2698         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
2699         (WebCore::ApplyPropertyCounter::emptyFunction): Deleted.
2700         (WebCore::ApplyPropertyCounter::applyInheritValue): Deleted.
2701         (WebCore::ApplyPropertyCounter::applyValue): Deleted.
2702         (WebCore::ApplyPropertyCounter::createHandler): Deleted.
2703         * css/StyleBuilderCustom.h:
2704         (WebCore::StyleBuilderCustom::applyInitialCounterIncrement):
2705         (WebCore::StyleBuilderCustom::applyInitialCounterReset):
2706         (WebCore::StyleBuilderCustom::applyInheritCounter):
2707         (WebCore::StyleBuilderCustom::applyValueCounter):
2708         (WebCore::StyleBuilderCustom::applyInheritCounterIncrement):
2709         (WebCore::StyleBuilderCustom::applyValueCounterIncrement):
2710         (WebCore::StyleBuilderCustom::applyInheritCounterReset):
2711         (WebCore::StyleBuilderCustom::applyValueCounterReset):
2712
2713 2014-12-14  Commit Queue  <commit-queue@webkit.org>
2714
2715         Unreviewed, rolling out r177238 and r177244.
2716         https://bugs.webkit.org/show_bug.cgi?id=139632
2717
2718         Introduced memory corruption (Requested by ap on #webkit).
2719
2720         Reverted changesets:
2721
2722         "REGRESSION (r168217): Images are cropped out during animation
2723         at jetblue.com"
2724         https://bugs.webkit.org/show_bug.cgi?id=136410
2725         http://trac.webkit.org/changeset/177238
2726
2727         https://bugs.webkit.org/show_bug.cgi?id=139596
2728         http://trac.webkit.org/changeset/177244
2729
2730 2014-12-14  Commit Queue  <commit-queue@webkit.org>
2731
2732         Unreviewed, rolling out r177223 and r177226.
2733         https://bugs.webkit.org/show_bug.cgi?id=139631
2734
2735         Multiple tests are flakily asserting in
2736         StyleResolver::loadPendingResources (Requested by ap_ on
2737         #webkit).
2738
2739         Reverted changesets:
2740
2741         "[SVG Masking] Enable the use of <mask> elements for -webkit-
2742         mask-image"
2743         https://bugs.webkit.org/show_bug.cgi?id=139294
2744         http://trac.webkit.org/changeset/177223
2745
2746         "animations/cross-fade-webkit-mask-image.html is flaky"
2747         https://bugs.webkit.org/show_bug.cgi?id=139590
2748         http://trac.webkit.org/changeset/177226
2749
2750 2014-12-14  Andreas Kling  <akling@apple.com>
2751
2752         Event construction helpers should return Ref instead of PassRefPtr.
2753         <https://webkit.org/b/139625>
2754
2755         Reviewed by Antti Koivisto.
2756
2757         Change all the FooEvent::create() construction helpers to return Ref<FooEvent>
2758         instead of PassRefPtr<FooEvent>.
2759
2760         This allows the compiler to omit null checks at each call site, since we know
2761         that these functions always return valid objects.
2762
2763         * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h:
2764         (WebCore::WebKitPlaybackTargetAvailabilityEvent::create):
2765         * Modules/encryptedmedia/MediaKeyMessageEvent.h:
2766         (WebCore::MediaKeyMessageEvent::create):
2767         * Modules/encryptedmedia/MediaKeyNeededEvent.h:
2768         (WebCore::MediaKeyNeededEvent::create):
2769         * Modules/gamepad/GamepadEvent.h:
2770         (WebCore::GamepadEvent::create):
2771         * Modules/indexeddb/IDBVersionChangeEvent.h:
2772         (WebCore::IDBVersionChangeEvent::create):
2773         * Modules/indieui/UIRequestEvent.cpp:
2774         (WebCore::UIRequestEvent::create):
2775         * Modules/indieui/UIRequestEvent.h:
2776         * Modules/mediastream/MediaStreamEvent.cpp:
2777         (WebCore::MediaStreamEvent::create):
2778         * Modules/mediastream/MediaStreamEvent.h:
2779         * Modules/mediastream/MediaStreamTrackEvent.cpp:
2780         (WebCore::MediaStreamTrackEvent::create):
2781         * Modules/mediastream/MediaStreamTrackEvent.h:
2782         * Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
2783         (WebCore::RTCDTMFToneChangeEvent::create):
2784         * Modules/mediastream/RTCDTMFToneChangeEvent.h:
2785         * Modules/mediastream/RTCDataChannelEvent.cpp:
2786         (WebCore::RTCDataChannelEvent::create):
2787         * Modules/mediastream/RTCDataChannelEvent.h:
2788         * Modules/mediastream/RTCIceCandidateEvent.cpp:
2789         (WebCore::RTCIceCandidateEvent::create):
2790         * Modules/mediastream/RTCIceCandidateEvent.h:
2791         * Modules/speech/SpeechSynthesisEvent.cpp:
2792         (WebCore::SpeechSynthesisEvent::create):
2793         * Modules/speech/SpeechSynthesisEvent.h:
2794         * Modules/webaudio/AudioProcessingEvent.cpp:
2795         (WebCore::AudioProcessingEvent::create):
2796         * Modules/webaudio/AudioProcessingEvent.h:
2797         * Modules/webaudio/OfflineAudioCompletionEvent.cpp:
2798         (WebCore::OfflineAudioCompletionEvent::create):
2799         * Modules/webaudio/OfflineAudioCompletionEvent.h:
2800         * Modules/websockets/CloseEvent.h:
2801         (WebCore::CloseEvent::create):
2802         * dom/AnimationEvent.h:
2803         * dom/AutocompleteErrorEvent.h:
2804         * dom/BeforeLoadEvent.h:
2805         * dom/BeforeTextInsertedEvent.h:
2806         * dom/BeforeUnloadEvent.h:
2807         * dom/ClipboardEvent.h:
2808         * dom/CompositionEvent.h:
2809         * dom/CustomEvent.h:
2810         * dom/DeviceMotionEvent.h:
2811         * dom/DeviceOrientationEvent.h:
2812         * dom/ErrorEvent.h:
2813         * dom/Event.h:
2814         (WebCore::Event::create):
2815         * dom/FocusEvent.h:
2816         * dom/HashChangeEvent.h:
2817         * dom/KeyboardEvent.h:
2818         * dom/MessageEvent.h:
2819         * dom/MouseEvent.cpp:
2820         (WebCore::MouseEvent::create):
2821         (WebCore::SimulatedMouseEvent::create):
2822         * dom/MouseEvent.h:
2823         (WebCore::MouseEvent::create):
2824         * dom/MutationEvent.h:
2825         * dom/OverflowEvent.h:
2826         * dom/PageTransitionEvent.h:
2827         * dom/PopStateEvent.cpp:
2828         (WebCore::PopStateEvent::create):
2829         * dom/PopStateEvent.h:
2830         * dom/ProgressEvent.h:
2831         (WebCore::ProgressEvent::create):
2832         * dom/TextEvent.cpp:
2833         (WebCore::TextEvent::create):
2834         (WebCore::TextEvent::createForPlainTextPaste):
2835         (WebCore::TextEvent::createForFragmentPaste):
2836         (WebCore::TextEvent::createForDrop):
2837         (WebCore::TextEvent::createForDictation):
2838         * dom/TextEvent.h:
2839         * dom/TouchEvent.h:
2840         * dom/TransitionEvent.h:
2841         * dom/UIEvent.h:
2842         (WebCore::UIEvent::create):
2843         * dom/WebKitAnimationEvent.h:
2844         * dom/WebKitTransitionEvent.h:
2845         * dom/WheelEvent.h:
2846         * html/MediaKeyEvent.h:
2847         * html/canvas/WebGLContextEvent.h:
2848         * html/track/TrackEvent.h:
2849         * storage/StorageEvent.cpp:
2850         (WebCore::StorageEvent::create):
2851         * storage/StorageEvent.h:
2852         * svg/SVGZoomEvent.h:
2853         (WebCore::SVGZoomEvent::create):
2854         * xml/XMLHttpRequestProgressEvent.h:
2855         (WebCore::XMLHttpRequestProgressEvent::create):
2856
2857 2014-12-14  Ryosuke Niwa  <rniwa@webkit.org>
2858
2859         REGRESSION(r160182): Fragment parser doesn't close a form element with a close tag
2860         https://bugs.webkit.org/show_bug.cgi?id=139561
2861
2862         Reviewed by Darin Adler.
2863
2864         The bug was caused by us not setting the form pointer in insertHTMLFormElement.
2865         Since we already avoid associating a form inside HTMLConstructionSite::createHTMLElement,
2866         we didn't need this code at all.
2867
2868         Fixed the bug by partially reverting r160182.
2869
2870         Test: fast/dom/dom-parse-close-form.html
2871
2872         * html/parser/HTMLConstructionSite.cpp:
2873         (WebCore::HTMLConstructionSite::insertHTMLFormElement):
2874         (WebCore::HTMLConstructionSite::insideTemplateElement): Deleted.
2875         * html/parser/HTMLConstructionSite.h:
2876
2877 2014-12-14  Andreas Kling  <akling@apple.com>
2878
2879         Fix build even more. Not a strong performance here.
2880
2881         * platform/graphics/Font.cpp:
2882         (WebCore::FontGlyphsCacheEntry::FontGlyphsCacheEntry):
2883         (WebCore::retrieveOrAddCachedFontGlyphs):
2884
2885 2014-12-14  Andreas Kling  <akling@apple.com>
2886
2887         Fix build. :-|
2888
2889         * css/CSSFunctionValue.cpp:
2890         (WebCore::CSSFunctionValue::CSSFunctionValue):
2891         * css/CSSFunctionValue.h:
2892
2893 2014-12-14  Andreas Kling  <akling@apple.com>
2894
2895         Minor follow-up tweaks suggested by Darin on bug 139587.
2896
2897         * css/CSSFunctionValue.h:
2898         (WebCore::CSSFunctionValue::create):
2899         * platform/graphics/Font.cpp:
2900         (WebCore::retrieveOrAddCachedFontGlyphs):
2901         (WebCore::FontGlyphsCacheEntry::FontGlyphsCacheEntry): Deleted.
2902         * rendering/RenderScrollbarPart.h:
2903
2904 2014-12-14  Andreas Kling  <akling@apple.com>
2905
2906         Replace PassRef with Ref/Ref&& across the board.
2907         <https://webkit.org/b/139587>
2908
2909         Reviewed by Darin Adler.
2910
2911         * Modules/battery/BatteryManager.cpp:
2912         (WebCore::BatteryManager::create):
2913         * Modules/battery/BatteryManager.h:
2914         * Modules/battery/BatteryStatus.cpp:
2915         (WebCore::BatteryStatus::create):
2916         * Modules/battery/BatteryStatus.h:
2917         * Modules/gamepad/GamepadButton.h:
2918         (WebCore::GamepadButton::create):
2919         * Modules/gamepad/NavigatorGamepad.cpp:
2920         (WebCore::NavigatorGamepad::gamepadFromPlatformGamepad):
2921         * Modules/gamepad/NavigatorGamepad.h:
2922         * Modules/gamepad/deprecated/GamepadList.h:
2923         (WebCore::GamepadList::create):
2924         * Modules/geolocation/Geolocation.cpp:
2925         (WebCore::Geolocation::create):
2926         * Modules/geolocation/Geolocation.h:
2927         (WebCore::Geolocation::GeoNotifier::create):
2928         * Modules/mediasource/MediaSource.cpp:
2929         (WebCore::MediaSource::setPrivateAndOpen):
2930         * Modules/mediasource/MediaSource.h:
2931         * Modules/mediasource/SourceBuffer.cpp:
2932         (WebCore::SourceBuffer::create):
2933         (WebCore::SourceBuffer::SourceBuffer):
2934         * Modules/mediasource/SourceBuffer.h:
2935         * Modules/mediastream/UserMediaClient.h:
2936         * Modules/mediastream/UserMediaController.h:
2937         (WebCore::UserMediaController::requestPermission):
2938         * Modules/notifications/Notification.cpp:
2939         (WebCore::Notification::create):
2940         * Modules/notifications/Notification.h:
2941         * Modules/notifications/NotificationCenter.cpp:
2942         (WebCore::NotificationCenter::create):
2943         * Modules/notifications/NotificationCenter.h:
2944         * Modules/plugins/PluginReplacement.h:
2945         * Modules/plugins/QuickTimePluginReplacement.h:
2946         * Modules/plugins/QuickTimePluginReplacement.mm:
2947         (WebCore::QuickTimePluginReplacement::createElementRenderer):
2948         * Modules/plugins/YouTubePluginReplacement.cpp:
2949         (WebCore::YouTubePluginReplacement::createElementRenderer):
2950         * Modules/plugins/YouTubePluginReplacement.h:
2951         * Modules/proximity/DeviceProximityEvent.h:
2952         (WebCore::DeviceProximityEvent::create):
2953         * WebCore.exp.in:
2954         * css/BasicShapeFunctions.cpp:
2955         (WebCore::valueForBasicShape):
2956         (WebCore::basicShapeForValue):
2957         * css/BasicShapeFunctions.h:
2958         * css/CSSAspectRatioValue.h:
2959         (WebCore::CSSAspectRatioValue::create):
2960         * css/CSSBorderImage.cpp:
2961         (WebCore::createBorderImageValue):
2962         * css/CSSBorderImage.h:
2963         * css/CSSBorderImageSliceValue.h:
2964         (WebCore::CSSBorderImageSliceValue::create):
2965         * css/CSSCalculationValue.cpp:
2966         (WebCore::determineCategory):
2967         * css/CSSCalculationValue.h:
2968         (WebCore::CSSCalcValue::CSSCalcValue):
2969         (WebCore::CSSCalcValue::createCalculationValue):
2970         * css/CSSCanvasValue.h:
2971         (WebCore::CSSCanvasValue::create):
2972         * css/CSSComputedStyleDeclaration.cpp:
2973         (WebCore::valueForImageSliceSide):
2974         (WebCore::valueForNinePieceImageSlice):
2975         (WebCore::valueForNinePieceImageQuad):
2976         (WebCore::valueForNinePieceImageRepeat):
2977         (WebCore::valueForNinePieceImage):
2978         (WebCore::zoomAdjustedPixelValue):
2979         (WebCore::zoomAdjustedNumberValue):
2980         (WebCore::zoomAdjustedPixelValueForLength):
2981         (WebCore::valueForReflection):
2982         (WebCore::createPositionListForLayer):
2983         (WebCore::percentageOrZoomAdjustedValue):
2984         (WebCore::autoOrZoomAdjustedValue):
2985         (WebCore::getBorderRadiusCornerValues):
2986         (WebCore::getBorderRadiusCornerValue):
2987         (WebCore::getBorderRadiusShorthandValue):
2988         (WebCore::matrixTransformValue):
2989         (WebCore::computedTransform):
2990         (WebCore::adjustLengthForZoom):
2991         (WebCore::ComputedStyleExtractor::valueForShadow):
2992         (WebCore::ComputedStyleExtractor::valueForFilter):
2993         (WebCore::specifiedValueForGridTrackBreadth):
2994         (WebCore::specifiedValueForGridTrackSize):
2995         (WebCore::valueForGridTrackList):
2996         (WebCore::valueForGridPosition):
2997         (WebCore::createTransitionPropertyValue):
2998         (WebCore::getTransitionPropertyValue):
2999         (WebCore::scrollSnapDestination):
3000         (WebCore::scrollSnapPoints):
3001         (WebCore::scrollSnapCoordinates):
3002         (WebCore::getDelayValue):
3003         (WebCore::getDurationValue):
3004         (WebCore::createTimingFunctionValue):
3005         (WebCore::getTimingFunctionValue):
3006         (WebCore::createLineBoxContainValue):
3007         (WebCore::valueForFamily):
3008         (WebCore::renderTextDecorationFlagsToCSSValue):
3009         (WebCore::renderTextDecorationStyleFlagsToCSSValue):
3010         (WebCore::renderTextDecorationSkipFlagsToCSSValue):
3011         (WebCore::renderEmphasisPositionFlagsToCSSValue):
3012         (WebCore::fillRepeatToCSSValue):
3013         (WebCore::fillSourceTypeToCSSValue):
3014         (WebCore::fillSizeToCSSValue):
3015         (WebCore::altTextToCSSValue):
3016         (WebCore::contentToCSSValue):
3017         (WebCore::fontFamilyFromStyle):
3018         (WebCore::lineHeightFromStyle):
3019         (WebCore::fontSizeFromStyle):
3020         (WebCore::fontStyleFromStyle):
3021         (WebCore::fontVariantFromStyle):
3022         (WebCore::fontWeightFromStyle):
3023         (WebCore::CSSComputedStyleDeclaration::copyProperties):
3024         (WebCore::shapePropertyValue):
3025         (WebCore::ComputedStyleExtractor::copyProperties):
3026         (WebCore::ComputedStyleExtractor::copyPropertiesInSet):
3027         * css/CSSComputedStyleDeclaration.h:
3028         * css/CSSCrossfadeValue.h:
3029         (WebCore::CSSCrossfadeValue::create):
3030         * css/CSSCursorImageValue.cpp:
3031         (WebCore::CSSCursorImageValue::CSSCursorImageValue):
3032         * css/CSSCursorImageValue.h:
3033         (WebCore::CSSCursorImageValue::create):
3034         * css/CSSFilterImageValue.h:
3035         (WebCore::CSSFilterImageValue::create):
3036         * css/CSSFontFaceSrcValue.h:
3037         (WebCore::CSSFontFaceSrcValue::create):
3038         (WebCore::CSSFontFaceSrcValue::createLocal):
3039         * css/CSSFontFeatureValue.h:
3040         (WebCore::CSSFontFeatureValue::create):
3041         * css/CSSFontValue.h:
3042         (WebCore::CSSFontValue::create):
3043         * css/CSSFunctionValue.h:
3044         (WebCore::CSSFunctionValue::create):
3045         * css/CSSGradientValue.h:
3046         (WebCore::CSSLinearGradientValue::create):
3047         (WebCore::CSSLinearGradientValue::clone):
3048         (WebCore::CSSRadialGradientValue::create):
3049         (WebCore::CSSRadialGradientValue::clone):
3050         * css/CSSGridTemplateAreasValue.h:
3051         (WebCore::CSSGridTemplateAreasValue::create):
3052         * css/CSSImageSetValue.h:
3053         (WebCore::CSSImageSetValue::create):
3054         * css/CSSImageValue.h:
3055         (WebCore::CSSImageValue::create):
3056         * css/CSSInheritedValue.h:
3057         (WebCore::CSSInheritedValue::create):
3058         * css/CSSInitialValue.h:
3059         (WebCore::CSSInitialValue::createExplicit):
3060         (WebCore::CSSInitialValue::createImplicit):
3061         * css/CSSKeyframeRule.cpp:
3062         (WebCore::StyleKeyframe::StyleKeyframe):
3063         * css/CSSKeyframeRule.h:
3064         (WebCore::StyleKeyframe::create):
3065         * css/CSSKeyframesRule.h:
3066         (WebCore::StyleRuleKeyframes::create):
3067         (WebCore::StyleRuleKeyframes::copy):
3068         * css/CSSLineBoxContainValue.h:
3069         (WebCore::CSSLineBoxContainValue::create):
3070         * css/CSSParser.cpp:
3071         (WebCore::createPrimitiveValuePair):
3072         (WebCore::CSSParser::parseInlineStyleDeclaration):
3073         (WebCore::CSSParser::parseDeclaration):
3074         (WebCore::CSSParser::createStyleProperties):
3075         (WebCore::CSSParser::createPrimitiveNumericValue):
3076         (WebCore::CSSParser::createPrimitiveStringValue):
3077         (WebCore::CSSParser::addFillValue):
3078         (WebCore::CSSParser::addAnimationValue):
3079         * css/CSSParser.h:
3080         * css/CSSPrimitiveValue.cpp:
3081         (WebCore::CSSPrimitiveValue::formatNumberValue):
3082         * css/CSSPrimitiveValue.h:
3083         (WebCore::CSSPrimitiveValue::createIdentifier):
3084         (WebCore::CSSPrimitiveValue::createParserOperator):
3085         (WebCore::CSSPrimitiveValue::createColor):
3086         (WebCore::CSSPrimitiveValue::create):
3087         (WebCore::CSSPrimitiveValue::createAllowingMarginQuirk):
3088         * css/CSSReflectValue.h:
3089         (WebCore::CSSReflectValue::create):
3090         * css/CSSShadowValue.h:
3091         (WebCore::CSSShadowValue::create):
3092         * css/CSSStyleDeclaration.h:
3093         * css/CSSStyleSheet.cpp:
3094         (WebCore::CSSStyleSheet::create):
3095         (WebCore::CSSStyleSheet::createInline):
3096         (WebCore::CSSStyleSheet::CSSStyleSheet):
3097         * css/CSSStyleSheet.h:
3098         * css/CSSTimingFunctionValue.h:
3099         (WebCore::CSSCubicBezierTimingFunctionValue::create):
3100         (WebCore::CSSStepsTimingFunctionValue::create):
3101         * css/CSSUnicodeRangeValue.h:
3102         (WebCore::CSSUnicodeRangeValue::create):
3103         * css/CSSValue.cpp:
3104         (WebCore::TextCloneCSSValue::create):
3105         * css/CSSValueList.h:
3106         (WebCore::CSSValueList::createCommaSeparated):
3107         (WebCore::CSSValueList::createSpaceSeparated):
3108         (WebCore::CSSValueList::createSlashSeparated):
3109         (WebCore::CSSValueList::createFromParserValueList):
3110         (WebCore::CSSValueList::append):
3111         (WebCore::CSSValueList::prepend):
3112         * css/CSSValuePool.cpp:
3113         (WebCore::CSSValuePool::createIdentifierValue):
3114         (WebCore::CSSValuePool::createColorValue):
3115         (WebCore::CSSValuePool::createValue):
3116         (WebCore::CSSValuePool::createFontFamilyValue):
3117         * css/CSSValuePool.h:
3118         (WebCore::CSSValuePool::createInheritedValue):
3119         (WebCore::CSSValuePool::createImplicitInitialValue):
3120         (WebCore::CSSValuePool::createExplicitInitialValue):
3121         (WebCore::CSSValuePool::createValue):
3122         * css/PropertySetCSSStyleDeclaration.cpp:
3123         (WebCore::PropertySetCSSStyleDeclaration::copyProperties):
3124         * css/PropertySetCSSStyleDeclaration.h:
3125         * css/StyleProperties.cpp:
3126         (WebCore::ImmutableStyleProperties::create):
3127         (WebCore::StyleProperties::immutableCopyIfNeeded):
3128         (WebCore::StyleProperties::copyBlockProperties):
3129         (WebCore::StyleProperties::mutableCopy):
3130         (WebCore::StyleProperties::copyPropertiesInSet):
3131         (WebCore::MutableStyleProperties::create):
3132         * css/StyleProperties.h:
3133         * css/StyleResolver.cpp:
3134         (WebCore::StyleResolver::State::setStyle):
3135         (WebCore::StyleResolver::styleForElement):
3136         (WebCore::StyleResolver::styleForKeyframe):
3137         (WebCore::StyleResolver::styleForPage):
3138         (WebCore::StyleResolver::defaultStyleForElement):
3139         * css/StyleResolver.h:
3140         (WebCore::StyleResolver::State::takeStyle):
3141         (WebCore::StyleResolver::State::setParentStyle):
3142         * css/StyleRule.cpp:
3143         (WebCore::StyleRuleBase::copy):
3144         (WebCore::StyleRule::StyleRule):
3145         (WebCore::StyleRule::create):
3146         (WebCore::StyleRulePage::StyleRulePage):
3147         (WebCore::StyleRuleFontFace::StyleRuleFontFace):
3148         (WebCore::StyleRuleGroup::wrapperInsertRule):
3149         (WebCore::StyleRuleViewport::StyleRuleViewport):
3150         * css/StyleRule.h:
3151         (WebCore::StyleRule::create):
3152         (WebCore::StyleRule::copy):
3153         (WebCore::StyleRuleFontFace::create):
3154         (WebCore::StyleRuleFontFace::copy):
3155         (WebCore::StyleRulePage::create):
3156         (WebCore::StyleRulePage::copy):
3157         (WebCore::StyleRuleMedia::create):
3158         (WebCore::StyleRuleMedia::copy):
3159         (WebCore::StyleRuleSupports::create):
3160         (WebCore::StyleRuleSupports::copy):
3161         (WebCore::StyleRuleRegion::create):
3162         (WebCore::StyleRuleRegion::copy):
3163         (WebCore::StyleRuleViewport::create):
3164         (WebCore::StyleRuleViewport::copy):
3165         * css/StyleRuleImport.cpp:
3166         (WebCore::StyleRuleImport::create):
3167         * css/StyleRuleImport.h:
3168         * css/StyleSheetContents.h:
3169         (WebCore::StyleSheetContents::create):
3170         (WebCore::StyleSheetContents::copy):
3171         * css/WebKitCSSFilterValue.h:
3172         (WebCore::WebKitCSSFilterValue::create):
3173         * css/WebKitCSSResourceValue.h:
3174         (WebCore::WebKitCSSResourceValue::create):
3175         * css/WebKitCSSTransformValue.h:
3176         (WebCore::WebKitCSSTransformValue::create):
3177         * dom/ChildNodeList.h:
3178         * dom/ClassNodeList.cpp:
3179         (WebCore::ClassNodeList::create):
3180         * dom/ClassNodeList.h:
3181         * dom/Document.cpp:
3182         (WebCore::Document::styleForElementIgnoringPendingStylesheets):
3183         * dom/Document.h:
3184         * dom/DocumentSharedObjectPool.cpp:
3185         (WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
3186         * dom/DocumentSharedObjectPool.h:
3187         * dom/DocumentStyleSheetCollection.cpp:
3188         (WebCore::DocumentStyleSheetCollection::addAuthorSheet):
3189         (WebCore::DocumentStyleSheetCollection::addUserSheet):
3190         * dom/DocumentStyleSheetCollection.h:
3191         * dom/Element.cpp:
3192         (WebCore::Element::createElementRenderer):
3193         * dom/Element.h:
3194         * dom/ElementData.cpp:
3195         (WebCore::ShareableElementData::createWithAttributes):
3196         (WebCore::UniqueElementData::create):
3197         (WebCore::ElementData::makeUniqueCopy):
3198         (WebCore::UniqueElementData::makeShareableCopy):
3199         * dom/ElementData.h:
3200         * dom/ElementRareData.h:
3201         (WebCore::ElementRareData::setComputedStyle):
3202         * dom/NameNodeList.h:
3203         * dom/NamedFlowCollection.cpp:
3204         (WebCore::NamedFlowCollection::ensureFlowWithName):
3205         * dom/NamedFlowCollection.h:
3206         * dom/NodeRareData.h:
3207         (WebCore::NodeListsNodeData::ensureChildNodeList):
3208         (WebCore::NodeListsNodeData::ensureEmptyChildNodeList):
3209         (WebCore::NodeListsNodeData::addCacheWithAtomicName):
3210         (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
3211         (WebCore::NodeListsNodeData::addCachedCollection):
3212         * dom/PseudoElement.cpp:
3213         (WebCore::PseudoElement::didRecalcStyle):
3214         * dom/QualifiedName.h:
3215         (WebCore::QualifiedName::QualifiedNameImpl::create):
3216         * dom/TagNodeList.h:
3217         * html/BaseButtonInputType.cpp:
3218         (WebCore::BaseButtonInputType::createInputRenderer):
3219         * html/BaseButtonInputType.h:
3220         * html/FileInputType.cpp:
3221         (WebCore::FileInputType::createInputRenderer):
3222         * html/FileInputType.h:
3223         * html/HTMLAllCollection.cpp:
3224         (WebCore::HTMLAllCollection::create):
3225         * html/HTMLAllCollection.h:
3226         * html/HTMLAppletElement.cpp:
3227         (WebCore::HTMLAppletElement::createElementRenderer):
3228         * html/HTMLAppletElement.h:
3229         * html/HTMLBRElement.cpp:
3230         (WebCore::HTMLBRElement::createElementRenderer):
3231         * html/HTMLBRElement.h:
3232         * html/HTMLButtonElement.cpp:
3233         (WebCore::HTMLButtonElement::createElementRenderer):
3234         * html/HTMLButtonElement.h:
3235         * html/HTMLCanvasElement.cpp:
3236         (WebCore::HTMLCanvasElement::createElementRenderer):
3237         * html/HTMLCanvasElement.h:
3238         * html/HTMLCollection.cpp:
3239         (WebCore::HTMLCollection::create):
3240         * html/HTMLCollection.h:
3241         * html/HTMLDetailsElement.cpp:
3242         (WebCore::HTMLDetailsElement::createElementRenderer):
3243         * html/HTMLDetailsElement.h:
3244         * html/HTMLElement.cpp:
3245         (WebCore::HTMLElement::createElementRenderer):
3246         * html/HTMLElement.h:
3247         * html/HTMLFieldSetElement.cpp:
3248         (WebCore::HTMLFieldSetElement::createElementRenderer):
3249         * html/HTMLFieldSetElement.h:
3250         * html/HTMLFormControlsCollection.cpp:
3251         (WebCore::HTMLFormControlsCollection::create):
3252         * html/HTMLFormControlsCollection.h:
3253         * html/HTMLFrameElement.cpp:
3254         (WebCore::HTMLFrameElement::createElementRenderer):
3255         * html/HTMLFrameElement.h:
3256         * html/HTMLFrameSetElement.cpp:
3257         (WebCore::HTMLFrameSetElement::createElementRenderer):
3258         * html/HTMLFrameSetElement.h:
3259         * html/HTMLIFrameElement.cpp:
3260         (WebCore::HTMLIFrameElement::createElementRenderer):
3261         * html/HTMLIFrameElement.h:
3262         * html/HTMLImageElement.cpp:
3263         (WebCore::HTMLImageElement::createElementRenderer):
3264         * html/HTMLImageElement.h:
3265         * html/HTMLInputElement.cpp:
3266         (WebCore::HTMLInputElement::createElementRenderer):
3267         * html/HTMLInputElement.h:
3268         * html/HTMLLinkElement.cpp:
3269         (WebCore::HTMLLinkElement::setCSSStyleSheet):
3270         * html/HTMLMediaElement.cpp:
3271         (WebCore::HTMLMediaElement::parseAttribute):
3272         * html/HTMLMediaElement.h:
3273         * html/HTMLMeterElement.cpp:
3274         (WebCore::HTMLMeterElement::createElementRenderer):
3275         * html/HTMLMeterElement.h:
3276         * html/HTMLNameCollection.h:
3277         * html/HTMLOptionsCollection.cpp:
3278         (WebCore::HTMLOptionsCollection::create):
3279         * html/HTMLOptionsCollection.h:
3280         * html/HTMLPlugInElement.cpp:
3281         (WebCore::HTMLPlugInElement::createElementRenderer):
3282         * html/HTMLPlugInElement.h:
3283         * html/HTMLPlugInImageElement.cpp:
3284         (WebCore::HTMLPlugInImageElement::createElementRenderer):
3285         * html/HTMLPlugInImageElement.h:
3286         * html/HTMLProgressElement.cpp:
3287         (WebCore::HTMLProgressElement::createElementRenderer):
3288         * html/HTMLProgressElement.h:
3289         * html/HTMLSelectElement.cpp:
3290         (WebCore::HTMLSelectElement::createElementRenderer):
3291         * html/HTMLSelectElement.h:
3292         * html/HTMLSummaryElement.cpp:
3293         (WebCore::HTMLSummaryElement::createElementRenderer):
3294         * html/HTMLSummaryElement.h:
3295         * html/HTMLTableRowsCollection.cpp:
3296         (WebCore::HTMLTableRowsCollection::create):
3297         * html/HTMLTableRowsCollection.h:
3298         * html/HTMLTextAreaElement.cpp:
3299         (WebCore::HTMLTextAreaElement::createElementRenderer):
3300         * html/HTMLTextAreaElement.h:
3301         * html/HTMLVideoElement.cpp:
3302         (WebCore::HTMLVideoElement::createElementRenderer):
3303         * html/HTMLVideoElement.h:
3304         * html/HTMLWBRElement.cpp:
3305         (WebCore::HTMLWBRElement::createElementRenderer):
3306         * html/HTMLWBRElement.h:
3307         * html/HiddenInputType.cpp:
3308         (WebCore::HiddenInputType::createInputRenderer):
3309         * html/HiddenInputType.h:
3310         * html/ImageInputType.cpp:
3311         (WebCore::ImageInputType::createInputRenderer):
3312         * html/ImageInputType.h:
3313         * html/InputType.cpp:
3314         (WebCore::InputType::createInputRenderer):
3315         * html/InputType.h:
3316         * html/LabelsNodeList.h:
3317         * html/RadioNodeList.h:
3318         * html/RangeInputType.cpp:
3319         (WebCore::RangeInputType::createInputRenderer):
3320         * html/RangeInputType.h:
3321         * html/SearchInputType.cpp:
3322         (WebCore::SearchInputType::createInputRenderer):
3323         * html/SearchInputType.h:
3324         * html/TextFieldInputType.cpp:
3325         (WebCore::TextFieldInputType::createInputRenderer):
3326         * html/TextFieldInputType.h:
3327         * html/shadow/DetailsMarkerControl.cpp:
3328         (WebCore::DetailsMarkerControl::createElementRenderer):
3329         * html/shadow/DetailsMarkerControl.h:
3330         * html/shadow/MediaControlElements.cpp:
3331         (WebCore::MediaControlTimelineContainerElement::createElementRenderer):
3332         (WebCore::MediaControlVolumeSliderContainerElement::createElementRenderer):
3333         (WebCore::MediaControlTextTrackContainerElement::createElementRenderer):
3334         * html/shadow/MediaControlElements.h:
3335         * html/shadow/MeterShadowElement.cpp:
3336         (WebCore::MeterInnerElement::createElementRenderer):
3337         * html/shadow/MeterShadowElement.h:
3338         * html/shadow/ProgressShadowElement.cpp:
3339         (WebCore::ProgressInnerElement::createElementRenderer):
3340         * html/shadow/ProgressShadowElement.h:
3341         * html/shadow/SliderThumbElement.cpp:
3342         (WebCore::RenderSliderThumb::RenderSliderThumb):
3343         (WebCore::SliderThumbElement::createElementRenderer):
3344         (WebCore::SliderContainerElement::createElementRenderer):
3345         * html/shadow/SliderThumbElement.h:
3346         * html/shadow/TextControlInnerElements.cpp:
3347         (WebCore::TextControlInnerContainer::createElementRenderer):
3348         (WebCore::TextControlInnerTextElement::createElementRenderer):
3349         * html/shadow/TextControlInnerElements.h:
3350         * html/shadow/mac/ImageControlsButtonElementMac.cpp:
3351         (WebCore::RenderImageControlsButton::RenderImageControlsButton):
3352         (WebCore::ImageControlsButtonElementMac::createElementRenderer):
3353         * html/shadow/mac/ImageControlsButtonElementMac.h:
3354         * html/shadow/mac/ImageControlsRootElementMac.cpp:
3355         (WebCore::RenderImageControls::RenderImageControls):
3356         (WebCore::ImageControlsRootElementMac::createElementRenderer):
3357         * html/shadow/mac/ImageControlsRootElementMac.h:
3358         * html/track/VTTCue.cpp:
3359         (WebCore::VTTCueBox::createElementRenderer):
3360         * html/track/VTTCue.h:
3361         * loader/cache/CachedCSSStyleSheet.cpp:
3362         (WebCore::CachedCSSStyleSheet::saveParsedStyleSheet):
3363         * loader/cache/CachedCSSStyleSheet.h:
3364         * loader/cache/CachedResourceLoader.h:
3365         (WebCore::CachedResourceLoader::create):
3366         * mathml/MathMLInlineContainerElement.cpp:
3367         (WebCore::MathMLInlineContainerElement::createElementRenderer):
3368         * mathml/MathMLInlineContainerElement.h:
3369         * mathml/MathMLMathElement.cpp:
3370         (WebCore::MathMLMathElement::createElementRenderer):
3371         * mathml/MathMLMathElement.h:
3372         * mathml/MathMLMencloseElement.cpp:
3373         (WebCore::MathMLMencloseElement::createElementRenderer):
3374         * mathml/MathMLMencloseElement.h:
3375         * mathml/MathMLSelectElement.cpp:
3376         (WebCore::MathMLSelectElement::createElementRenderer):
3377         * mathml/MathMLSelectElement.h:
3378         * mathml/MathMLTextElement.cpp:
3379         (WebCore::MathMLTextElement::createElementRenderer):
3380         * mathml/MathMLTextElement.h:
3381         * page/Page.cpp:
3382         (WebCore::Page::setStorageNamespaceProvider):
3383         (WebCore::Page::setVisitedLinkStore):
3384         * page/Page.h:
3385         * page/UserMessageHandler.h:
3386         (WebCore::UserMessageHandler::create):
3387         * page/UserMessageHandlersNamespace.h:
3388         (WebCore::UserMessageHandlersNamespace::create):
3389         * page/animation/AnimationController.cpp:
3390         (WebCore::AnimationControllerPrivate::addElementChangeToDispatch):
3391         (WebCore::AnimationController::updateAnimations):
3392         * page/animation/AnimationController.h:
3393         * page/animation/AnimationControllerPrivate.h:
3394         * page/animation/CompositeAnimation.cpp:
3395         (WebCore::CompositeAnimation::animate):
3396         * page/animation/CompositeAnimation.h:
3397         * platform/CalculationValue.cpp:
3398         (WebCore::CalculationValue::create):
3399         * platform/CalculationValue.h:
3400         * platform/Length.cpp:
3401         (WebCore::CalculationValueMap::insert):
3402         (WebCore::Length::Length):
3403         * platform/Length.h:
3404         * platform/graphics/Font.cpp:
3405         (WebCore::FontGlyphsCacheEntry::FontGlyphsCacheEntry):
3406         (WebCore::retrieveOrAddCachedFontGlyphs):
3407         * platform/graphics/FontGlyphs.h:
3408         (WebCore::FontGlyphs::create):
3409         (WebCore::FontGlyphs::createForPlatformFont):
3410         * platform/graphics/Gradient.h:
3411         (WebCore::Gradient::create):
3412         * platform/graphics/GraphicsContext.cpp:
3413         (WebCore::GraphicsContext::setStrokePattern):
3414         (WebCore::GraphicsContext::setFillPattern):
3415         (WebCore::GraphicsContext::setStrokeGradient):
3416         (WebCore::GraphicsContext::setFillGradient):
3417         * platform/graphics/GraphicsContext.h:
3418         * platform/graphics/MediaSourcePrivateClient.h:
3419         * platform/graphics/Pattern.cpp:
3420         (WebCore::Pattern::create):
3421         * platform/graphics/Pattern.h:
3422         * platform/mac/SerializedPlatformRepresentationMac.h:
3423         * platform/mac/SerializedPlatformRepresentationMac.mm:
3424         (WebCore::SerializedPlatformRepresentationMac::create):
3425         * platform/mock/UserMediaClientMock.h:
3426         (WebCore::UserMediaClientRequestNotifier::UserMediaClientRequestNotifier):
3427         * rendering/ClipPathOperation.h:
3428         * rendering/RenderBlock.cpp:
3429         (WebCore::RenderBlock::RenderBlock):
3430         * rendering/RenderBlock.h:
3431         * rendering/RenderBlockFlow.cpp:
3432         (WebCore::RenderBlockFlow::RenderBlockFlow):
3433         * rendering/RenderBlockFlow.h:
3434         * rendering/RenderBox.cpp:
3435         (WebCore::RenderBox::RenderBox):
3436         * rendering/RenderBox.h:
3437         * rendering/RenderBoxModelObject.cpp:
3438         (WebCore::RenderBoxModelObject::RenderBoxModelObject):
3439         * rendering/RenderBoxModelObject.h:
3440         * rendering/RenderButton.cpp:
3441         (WebCore::RenderButton::RenderButton):
3442         * rendering/RenderButton.h:
3443         * rendering/RenderDeprecatedFlexibleBox.cpp:
3444         (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
3445         * rendering/RenderDeprecatedFlexibleBox.h:
3446         * rendering/RenderDetailsMarker.cpp:
3447         (WebCore::RenderDetailsMarker::RenderDetailsMarker):
3448         * rendering/RenderDetailsMarker.h:
3449         * rendering/RenderElement.cpp:
3450         (WebCore::RenderElement::RenderElement):
3451         (WebCore::RenderElement::createFor):
3452         (WebCore::RenderElement::setStyle):
3453         * rendering/RenderElement.h:
3454         (WebCore::RenderElement::setStyleInternal):
3455         (WebCore::RenderElement::setAnimatableStyle):
3456         * rendering/RenderEmbeddedObject.cpp:
3457         (WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
3458         (WebCore::RenderEmbeddedObject::createForApplet):
3459         * rendering/RenderEmbeddedObject.h:
3460         * rendering/RenderFieldset.cpp:
3461         (WebCore::RenderFieldset::RenderFieldset):
3462         * rendering/RenderFieldset.h:
3463         * rendering/RenderFileUploadControl.cpp:
3464         (WebCore::RenderFileUploadControl::RenderFileUploadControl):
3465         * rendering/RenderFileUploadControl.h:
3466         * rendering/RenderFlexibleBox.cpp:
3467         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
3468         * rendering/RenderFlexibleBox.h:
3469         * rendering/RenderFlowThread.cpp:
3470         (WebCore::RenderFlowThread::RenderFlowThread):
3471         (WebCore::RenderFlowThread::createFlowThreadStyle):
3472         * rendering/RenderFlowThread.h:
3473         * rendering/RenderFrame.cpp:
3474         (WebCore::RenderFrame::RenderFrame):
3475         * rendering/RenderFrame.h:
3476         * rendering/RenderFrameBase.cpp:
3477         (WebCore::RenderFrameBase::RenderFrameBase):
3478         * rendering/RenderFrameBase.h:
3479         * rendering/RenderFrameSet.cpp:
3480         (WebCore::RenderFrameSet::RenderFrameSet):
3481         * rendering/RenderFrameSet.h:
3482         * rendering/RenderFullScreen.cpp:
3483         (WebCore::RenderFullScreen::RenderFullScreen):
3484         (WebCore::createFullScreenStyle):
3485         (WebCore::RenderFullScreen::createPlaceholder):
3486         * rendering/RenderFullScreen.h:
3487         * rendering/RenderGrid.cpp:
3488         (WebCore::RenderGrid::RenderGrid):
3489         * rendering/RenderGrid.h:
3490         * rendering/RenderHTMLCanvas.cpp: