[EFL][WK2] Enable interactive form validation for email and url input type validation
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-03-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2
3         [EFL][WK2] Enable interactive form validation for email and url input type validation
4         https://bugs.webkit.org/show_bug.cgi?id=111026
5
6         Reviewed by Laszlo Gombos.
7
8         WebKit EFL can check if input value is valid by enabling this feature.
9
10         * platform/efl/LocalizedStringsEfl.cpp: Change validation messages of email and url the same with chromium port.
11         (WebCore::validationMessageTypeMismatchForEmailText):
12         (WebCore::validationMessageTypeMismatchForMultipleEmailText):
13         (WebCore::validationMessageTypeMismatchForURLText):
14         * platform/efl/RenderThemeEfl.cpp: Add type checking conditions for email and url.
15         (WebCore::RenderThemeEfl::supportsDataListUI):
16
17 2013-03-06  Aaron Colwell  <acolwell@chromium.org>
18
19         Remove WebCore::Node::isActiveNode() since it isn't called anywhere.
20         https://bugs.webkit.org/show_bug.cgi?id=111646
21
22         Reviewed by Kentaro Hara.
23
24         No new tests. This removes dead code.
25
26         * dom/Node.h:
27         (Node):
28         * html/HTMLAudioElement.h:
29
30 2013-03-06  Abhishek Arya  <inferno@chromium.org>
31
32         Crash in SVGViewSpec::viewTarget
33         https://bugs.webkit.org/show_bug.cgi?id=111648
34
35         Reviewed by Philip Rogers.
36
37         * svg/SVGViewSpec.cpp:
38         (WebCore::SVGViewSpec::viewTarget):
39
40 2013-03-06  Benjamin Poulain  <benjamin@webkit.org>
41
42         WebKitTestRunner needs layoutTestController.elementDoesAutoCompleteForElementWithId
43         https://bugs.webkit.org/show_bug.cgi?id=42696
44
45         Reviewed by Andreas Kling.
46
47         Since the method acts directly on a WebCore element and strictly test
48         HTMLInputElement::shouldAutoComplete(), the test function is moved to internals.
49
50         * testing/Internals.cpp:
51         (WebCore::Internals::elementShouldAutoComplete):
52         * testing/Internals.h:
53         * testing/Internals.idl:
54
55 2013-03-06  Alexey Proskuryakov  <ap@apple.com>
56
57         [Mac] Synthetic ResourceResponses cannot be sent over IPC without losing most information
58         https://bugs.webkit.org/show_bug.cgi?id=111623
59
60         Reviewed by Brady Eidson.
61
62         * WebCore.exp.in: Exported functions for building synthetic responses.
63
64         * platform/network/ResourceResponseBase.cpp:
65         * platform/network/ResourceResponseBase.h:
66         Added a lot of FIXMEs.
67
68         * platform/network/cf/ResourceResponse.h:
69         (WebCore::ResourceResponse::ResourceResponse):
70         (WebCore::ResourceResponse::platformResponseIsUpToDate):
71         Track m_platformResponseIsUpToDate flag as well as we can. Currently, it will
72         be incorrect if a real platform response gets mutated.
73
74         * platform/network/cf/ResourceResponseCFNet.cpp:
75         (WebCore::ResourceResponse::cfURLResponse): Added a FIXME about how useless this
76         function is when it tries to create a new CFURLResponse.
77
78         * platform/network/mac/ResourceResponseMac.mm:
79         (WebCore::ResourceResponse::initNSURLResponse): Added a FIXME.
80         (WebCore::ResourceResponse::nsURLResponse): Added a return to make logic more clear.
81         (WebCore::ResourceResponse::ResourceResponse): Track m_platformResponseIsUpToDate.
82
83         * platform/network/blackberry/ResourceResponse.h:
84         * platform/network/curl/ResourceResponse.h:
85         * platform/network/qt/ResourceResponse.h:
86         * platform/network/soup/ResourceResponse.h:
87         * platform/network/win/ResourceResponse.h:
88         These platforms do not keep a platform response, so it's never up to date, and
89         WebCore data needs to be serialized.
90
91 2013-03-06  Dana Jansens  <danakj@chromium.org>
92
93         [chromium] Remove WebSharedGraphicsContext3D class
94         https://bugs.webkit.org/show_bug.cgi?id=111492
95
96         Reviewed by James Robinson.
97
98         Removing dead code, no new tests.
99
100         * WebCore.gypi:
101         * platform/chromium/support/WebSharedGraphicsContext3D.cpp: Removed.
102
103 2013-03-06  Dana Jansens  <danakj@chromium.org>
104
105         [chromium] Don't get callbacks or create GrContext from unowned WebGraphicsContext3D
106         https://bugs.webkit.org/show_bug.cgi?id=111638
107
108         Reviewed by James Robinson.
109
110         If the context is not owned, it's lifetime is not guaranteed, and by the time
111         the GraphicsContext3D is destroyed, the WGC3D can already be deleted.
112
113         When the context is not owned by the GraphicsContext3D, then don't clean it up
114         in the destructor or set up callbacks, as these are the owner's responsibility.
115
116         * platform/chromium/support/GraphicsContext3DPrivate.cpp:
117         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
118         (WebCore::GraphicsContext3DPrivate::grContext):
119         (WebCore::GraphicsContext3DPrivate::setContextLostCallback):
120         (WebCore::GraphicsContext3DPrivate::setErrorMessageCallback):
121
122 2013-02-22  Jer Noble  <jer.noble@apple.com>
123
124         Default mouse cursor behavior should be auto-hide for full screen video with custom controls
125         https://bugs.webkit.org/show_bug.cgi?id=107601
126
127         Reviewed by Beth Dakin.
128
129         Test: fullscreen/video-cursor-auto-hide.html
130
131         To facilitate automatically hiding the mouse cursor after a certain amount of idle mouse
132         time, add a new CSS property '-webkit-cursor-visibility', and handle that value inside of
133         EventHandler. When that value is present, the EventHandler will start a timer which, when
134         fired, will set the view's cursor to the None cursor. Subsequent mouse moves will either
135         cancel the timer, or reset the auto-hide timer.
136
137         Add a new CSS property, '-webkit-cursor-visibility':
138         * css/CSSComputedStyleDeclaration.cpp:
139         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
140         * css/CSSParser.cpp:
141         (WebCore::CSSParser::parseValue):
142         * css/CSSPrimitiveValueMappings.h:
143         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
144         (WebCore::CSSPrimitiveValue::operator ECursorVisibility):
145         * css/CSSProperty.cpp:
146         (WebCore::CSSProperty::isInheritedProperty):
147         * css/CSSPropertyNames.in:
148         * css/CSSValueKeywords.in:
149         * css/StyleBuilder.cpp:
150         (WebCore::StyleBuilder::StyleBuilder):
151         * css/StyleResolver.cpp:
152         (WebCore::StyleResolver::applyProperty):
153
154         Add a rule for video descendants of full screen elements to auto-hide the cursor on hover:
155         * css/fullscreen.css:
156         (:-webkit-full-screen video:hover):
157
158         Add a new timer, m_autoHideCursorTimer, to control resetting the view's cursor to None after
159         enough mouse idle time has passed.
160         * page/EventHandler.cpp:
161         (WebCore::EventHandler::EventHandler):
162         (WebCore::EventHandler::~EventHandler):
163         (WebCore::EventHandler::clear):
164         (WebCore::EventHandler::selectCursor):
165         (WebCore::EventHandler::startAutoHideCursorTimer):
166         (WebCore::EventHandler::cancelAutoHideCursorTimer):
167         (WebCore::EventHandler::autoHideCursorTimerFired):
168         * page/EventHandler.h:
169
170         Make FrameView::isActive() a public function (like it is in its superclass).
171         * page/FrameView.h:
172         (FrameView):
173
174         Move the definition for timeWithoutMouseMovementBeforeHidingControls from page->theme()
175         to page->settings() and allow that setting to be overridden in InternalSettings for 
176         testing purposes:
177         * page/Settings.cpp:
178         (WebCore::Settings::Settings):
179         * page/Settings.h:
180         (WebCore::Settings::setTimeWithoutMouseMovementBeforeHidingControls):
181         (WebCore::Settings::timeWithoutMouseMovementBeforeHidingControls):
182         * rendering/RenderTheme.h:
183         * testing/InternalSettings.cpp:
184         (WebCore::InternalSettings::Backup::Backup):
185         (WebCore::InternalSettings::Backup::restoreTo):
186         (WebCore::InternalSettings::setTimeWithoutMouseMovementBeforeHidingControls):
187         * testing/InternalSettings.h:
188         (InternalSettings):
189         * testing/InternalSettings.idl:
190         * html/shadow/MediaControls.cpp:
191         (WebCore::MediaControls::startHideFullscreenControlsTimer):
192
193         Add support to FeatureObserver for CURSOR_VISIBILITY:
194         * page/FeatureObserver.h:
195
196         Enable the feature flag:
197         * Configurations/FeatureDefines.xcconfig:
198
199 2013-03-06  Jer Noble  <jer.noble@apple.com>
200
201         Full screen from an iframe with a z-index style will allow siblings with higher z-index to overlay full screen content.
202         https://bugs.webkit.org/show_bug.cgi?id=111637
203
204         Reviewed by Simon Fraser.
205
206         No new tests; updated fullscreen/full-screen-iframe-zIndex.html to expose bug.
207
208         Pages with explicit z-index: styles on their iframes will override the default z-index: UA style when
209         elements within that iframe enter full screen mode. Mark the UA style as !important so as to not allow
210         iframe siblings with higher z-index styles to overlay the full screen element.
211
212         * css/fullscreen.css:
213         (:-webkit-full-screen):
214
215 2013-03-06  Levi Weintraub  <leviw@chromium.org>
216
217         InsertUnorderedList can lead to lost content and assertions in moveParagraphs
218         https://bugs.webkit.org/show_bug.cgi?id=111228
219
220         Reviewed by Ryosuke Niwa.
221
222         When a list is wrapped in a presentational inline like a b tag, we'd create markup that included
223         everything up to the b tag from moveParagraphs when intending to only move the contents of the
224         list item. This could make it impossible to remove content from a list and trigger loss of
225         editable text.
226
227         Test: editing/execCommand/insert-remove-block-list-inside-presentational-inline.html
228
229         * editing/EditingStyle.cpp:
230         (WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl): Ensure there's an inline style
231         before calling propertyExistsInStyle.
232         (WebCore::HTMLElementEquivalent::propertyExistsInStyle): Removing null check for style.
233         All callers ensure this value isn't null.
234         * editing/markup.cpp:
235         (WebCore::highestAncestorToWrapMarkup): Avoid going over RenderBlocks when finding the highest
236         presentational ancestor to avoid leaving the bounds of the original paragraph.
237
238 2013-03-06  Adam Klein  <adamk@chromium.org>
239
240         [V8] Use implicit references instead of object groups to keep registered MutationObservers alive
241         https://bugs.webkit.org/show_bug.cgi?id=111382
242
243         Reviewed by Adam Barth.
244
245         Two-phase approach to implicit references: after grouping objects
246         together, add an implicit reference between each registered node's
247         group and the MutationObserver's group (which includes wrappers from
248         all worlds).
249
250         Also changed many uses of v8::Value to v8::Object where we know we're
251         dealing with Object and the V8 API expects them.
252
253         Test: ManualTests/mutation-observer-leaks-nodes.html
254
255         * bindings/v8/V8GCController.cpp:
256         (WebCore::ImplicitConnection::ImplicitConnection):
257         (WebCore::ImplicitConnection::wrapper):
258         (ImplicitConnection):
259         (WebCore::ImplicitReference::ImplicitReference): Wrapper class holding a parent who should have an implicit reference to a child.
260         (ImplicitReference):
261         (WebCore::operator<): Needed for std::sort() call to avoid the overhead of using a HashMap
262         (WebCore::WrapperGrouper::addObjectWrapperToGroup):
263         (WebCore::WrapperGrouper::addNodeWrapperToGroup):
264         (WebCore::WrapperGrouper::addImplicitReference):
265         (WrapperGrouper):
266         (WebCore::WrapperGrouper::apply):
267
268 2013-03-06  Ankur Taly  <ataly@google.com>
269
270         Modify log method in V8DOMActivityLogger so that the apiName and
271         extraInfo arguments are of type const String& instead of const char*.
272         This change gets rid of some of the memory ownership issues that arise
273         with char* pointers.
274         https://bugs.webkit.org/show_bug.cgi?id=111483
275
276         Reviewed by Adam Barth.
277
278         There are no new tests as there is no change in behavior.
279
280         * bindings/v8/V8DOMActivityLogger.h:
281         (WebCore::V8DOMActivityLogger::log):
282
283 2013-03-06  Mike Reed  <reed@google.com>
284
285         Use SkTypeface API directly, rather than (soon to be private) SkFontHost
286         https://bugs.webkit.org/show_bug.cgi?id=111588
287
288         Reviewed by Stephen White.
289
290         No new tests, as existing tests in fast/writing-mode exercise this code.
291
292         e.g. japanese-rl-text-with-broken-font.html
293              vertical-subst-font-vert-no-dflt.html
294
295         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
296         (WebCore::FontPlatformData::emSizeInFontUnits):
297         (WebCore::FontPlatformData::openTypeTable):
298         * platform/graphics/harfbuzz/HarfBuzzFaceSkia.cpp:
299         (WebCore::harfBuzzSkiaGetTable):
300         (WebCore::HarfBuzzFace::createFace):
301         * platform/graphics/skia/SimpleFontDataSkia.cpp:
302         (WebCore::SimpleFontData::platformInit):
303
304 2013-03-06  Victor Costan <costan@gmail.com>
305
306         Cleanup in multipart FormData sending code.
307         https://bugs.webkit.org/show_bug.cgi?id=111603
308
309         Reviewed by Alexey Proskuryakov.
310
311         No new tests. This is cleanup.
312
313         * platform/network/FormDataBuilder.cpp:
314         (WebCore::appendQuotedString): use proper types (e.g, size_t instead of
315         unsigned long)
316
317 2013-03-06  Tony Gentilcore  <tonyg@chromium.org>
318
319         Threaded HTML parser should use 8 bit strings for attributes
320         https://bugs.webkit.org/show_bug.cgi?id=111610
321
322         Reviewed by Eric Seidel.
323
324         This fixes a 27% regression in dromaeo_jslibattrjquery on the threaded HTML parser vs. the main thread parser.
325
326         No new tests because no new functionality.
327
328         * html/parser/CompactHTMLToken.cpp:
329         (WebCore::CompactHTMLToken::CompactHTMLToken):
330
331 2013-03-06  Alpha Lam  <hclam@chromium.org>
332
333         More cleanup in GIFImageReader
334         https://bugs.webkit.org/show_bug.cgi?id=111137
335
336         Reviewed by Stephen White.
337
338         Refactor GIFImageReaderReader with the following changes:
339         + Separate GIFLZWContext for decoding states.
340         + Replace unsigned char* with Vector<unsigned char>
341
342         There is no change in code behavior and just refactoring.
343
344         No new tests. This is covered by existing GIFImageReaderTest.
345         I also did a local testing on a 50k image corpus and showed no regression.
346
347         * platform/image-decoders/gif/GIFImageDecoder.cpp:
348         (WebCore::GIFImageDecoder::haveDecodedRow):
349         * platform/image-decoders/gif/GIFImageDecoder.h:
350         (GIFImageDecoder):
351         * platform/image-decoders/gif/GIFImageReader.cpp:
352         (GIFImageReader::outputRow):
353         (GIFImageReader::doLZW):
354         (GIFImageReader::decodeInternal):
355         (GIFImageReader::prepareLZWContext):
356         * platform/image-decoders/gif/GIFImageReader.h:
357         (GIFFrameContext):
358         (GIFFrameContext::GIFFrameContext):
359         (GIFFrameContext::~GIFFrameContext):
360         (GIFLZWContext):
361         (GIFLZWContext::GIFLZWContext):
362         (GIFImageReader):
363
364 2013-03-06  Tim Horton  <timothy_horton@apple.com>
365
366         Fix typo'd MainThreadScrollingBecauseOfStyleIndictaion
367         https://bugs.webkit.org/show_bug.cgi?id=111557
368
369         Reviewed by Geoff Garen.
370
371         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
372         (WebCore::ScrollingCoordinatorMac::commitTreeState):
373         * platform/graphics/TiledBacking.h:
374         * platform/graphics/ca/mac/TileCache.mm:
375         (WebCore::TileCache::updateTileCoverageMap):
376
377 2013-03-05  Geoffrey Garen  <ggaren@apple.com>
378
379         Removed some dead code in the page cache
380         https://bugs.webkit.org/show_bug.cgi?id=111525
381
382         Reviewed by Alexey Proskuryakov.
383
384         Page cache autorelease doesn't exist anymore, so there's no need to keep
385         around these olds hacks.
386
387         * WebCore.exp.in:
388         * history/PageCache.cpp:
389         (WebCore::PageCache::PageCache):
390         (WebCore):
391         * history/PageCache.h:
392         (PageCache):
393         * page/Settings.cpp:
394         (WebCore::Settings::setUsesPageCache):
395         * platform/mac/MemoryPressureHandlerMac.mm:
396         (WebCore::MemoryPressureHandler::releaseMemory):
397         * platform/qt/QtTestSupport.cpp:
398         (WebKit::QtTestSupport::clearMemoryCaches):
399
400 2013-03-06  Rafael Weinstein  <rafaelw@chromium.org>
401
402         Unreviewed, rolling out r144924.
403         http://trac.webkit.org/changeset/144924
404         https://bugs.webkit.org/show_bug.cgi?id=109908
405
406         caused multiple crashes in inspector/debugger tests
407
408         * bindings/js/JSInjectedScriptHostCustom.cpp:
409         * bindings/js/ScriptObject.h:
410         * bindings/v8/ScriptObject.h:
411         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
412         * inspector/InjectedScriptHost.cpp:
413         (WebCore::InjectedScriptHost::create):
414         (WebCore::InjectedScriptHost::InjectedScriptHost):
415         (WebCore::InjectedScriptHost::disconnect):
416         * inspector/InjectedScriptHost.h:
417         (WebCore):
418         (InjectedScriptHost):
419         * inspector/InjectedScriptHost.idl:
420         * inspector/InjectedScriptManager.cpp:
421         (WebCore::InjectedScriptManager::InjectedScriptManager):
422         (WebCore::InjectedScriptManager::discardInjectedScripts):
423         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
424         * inspector/InjectedScriptManager.h:
425         (InjectedScriptManager):
426         * inspector/InjectedScriptSource.js:
427         (.):
428
429 2013-03-06  Dmitry Zvorygin  <zvorygin@chromium.org>
430
431         Introduce new message sources for logging.
432         https://bugs.webkit.org/show_bug.cgi?id=110968
433
434         Reviewed by Pavel Feldman.
435
436         Added SecurityMessageSource, RenderingMessageSource, StorageMessageSource, AppCacheMessageSource, CSSMessageSource.
437         Changed some logging lines to contain more descriptive message source.
438
439         * Modules/webdatabase/DatabaseBase.cpp:
440         (WebCore::DatabaseBase::logErrorMessage):
441         * Modules/webdatabase/DatabaseManager.cpp:
442         (WebCore::DatabaseManager::logErrorMessage):
443         * Modules/websockets/WebSocketChannel.cpp:
444         (WebCore::WebSocketChannel::fail):
445         * bindings/ScriptControllerBase.cpp:
446         (WebCore::ScriptController::canExecuteScripts):
447         * css/MediaList.cpp:
448         (WebCore::addResolutionWarningMessageToConsole):
449         * dom/Document.cpp:
450         (WebCore::Document::processHttpEquiv):
451         * dom/ScriptElement.cpp:
452         (WebCore::ScriptElement::executeScript):
453         (WebCore::ScriptElement::notifyFinished):
454         * dom/ViewportArguments.cpp:
455         (WebCore::reportViewportWarning):
456         * html/HTMLFormControlElement.cpp:
457         (WebCore::shouldAutofocus):
458         * html/HTMLFormElement.cpp:
459         (WebCore::HTMLFormElement::validateInteractively):
460         * html/HTMLIFrameElement.cpp:
461         (WebCore::HTMLIFrameElement::parseAttribute):
462         * html/canvas/CanvasRenderingContext2D.cpp:
463         (WebCore::CanvasRenderingContext2D::getImageData):
464         * html/canvas/WebGLRenderingContext.cpp:
465         (WebCore):
466         (WebCore::WebGLRenderingContext::printWarningToConsole):
467         * html/parser/XSSAuditor.cpp:
468         (WebCore::XSSAuditor::init):
469         * html/parser/XSSAuditorDelegate.cpp:
470         (WebCore::XSSAuditorDelegate::didBlockScript):
471         * inspector/ConsoleMessage.cpp:
472         (WebCore::messageSourceValue):
473         * inspector/Inspector.json:
474         * loader/FrameLoader.cpp:
475         (WebCore::FrameLoader::submitForm):
476         (WebCore::FrameLoader::reportLocalLoadFailed):
477         (WebCore::createWindow):
478         * loader/ImageLoader.cpp:
479         (WebCore::ImageLoader::notifyFinished):
480         * loader/MainResourceLoader.cpp:
481         (WebCore::MainResourceLoader::responseReceived):
482         * loader/MixedContentChecker.cpp:
483         (WebCore::MixedContentChecker::logWarning):
484         * loader/TextTrackLoader.cpp:
485         (WebCore::TextTrackLoader::corsPolicyPreventedLoad):
486         * loader/appcache/ApplicationCacheGroup.cpp:
487         (WebCore::ApplicationCacheGroup::abort):
488         * loader/cache/CachedResourceLoader.cpp:
489         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
490         * page/Console.cpp:
491         (WebCore::printMessageSourceAndLevelPrefix):
492         * page/ConsoleTypes.h:
493         * page/ContentSecurityPolicy.cpp:
494         (WebCore::ContentSecurityPolicy::logToConsole):
495         * page/DOMWindow.cpp:
496         (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
497         * page/PointerLockController.cpp:
498         (WebCore::PointerLockController::requestPointerLock):
499         * svg/SVGDocumentExtensions.cpp:
500         (WebCore::reportMessage):
501
502 2013-03-06  Florin Malita  <fmalita@chromium.org>
503
504         SVG pattern to pattern reference does not work if first pattern has a child node
505         https://bugs.webkit.org/show_bug.cgi?id=111586
506
507         Reviewed by Philip Rogers.
508
509         SVGPatternElement::collectPatternAttributes should test for child elements, not child nodes.
510
511         Tests: svg/custom/pattern-reference-expected.svg
512                svg/custom/pattern-reference.svg
513
514         * svg/SVGPatternElement.cpp:
515         (WebCore::SVGPatternElement::collectPatternAttributes):
516
517 2013-03-06  Christophe Dumez  <ch.dumez@sisa.samsung.com>
518
519         [soup] session cookies are not correctly reported in getRawCookies()
520         https://bugs.webkit.org/show_bug.cgi?id=111584
521
522         Reviewed by Martin Robinson.
523
524         As per libsoup documentation, SoupCookie->expires is NULL for session cookies.
525         However, the soup implementation for getRawCookies() does not check for NULL
526         case before passing the value to soup_date_to_time_t(), which leads to run time
527         warnings.
528
529         We should also pass true for WebCore::Cookie's session argument if
530         SoupCookie->expires is NULL. The current implementation reports the cookie as a
531         session one if soup_cookie_jar_is_persistent(jar) returns true, which is
532         inaccurate.
533
534         No new tests, no behavior change for layout tests as Web Inspector currently
535         ignores the "session" member and uses expires/max-age instead to deduce it.
536
537         * platform/network/soup/CookieJarSoup.cpp:
538         (WebCore::getRawCookies):
539
540 2013-03-06  Douglas Stockwell  <dstockwell@chromium.org>
541
542         REGRESSION(r111639): delayed animation start can be postponed
543         https://bugs.webkit.org/show_bug.cgi?id=108582
544
545         Query the animation timer directly for the time it will next fire rather than
546         trying to cache the interval. Previous approach was incorrect -- as time advanced
547         it was possible for the interval to jump beyond the next service time.
548
549         Reviewed by Darin Adler.
550
551         Test: animations/animation-delay-changed.html
552
553         * page/animation/AnimationController.cpp:
554         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
555         (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
556         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
557         * page/animation/AnimationControllerPrivate.h:
558         (AnimationControllerPrivate): Remove m_previousTimeToNextService
559
560 2013-03-06  Andrey Lushnikov  <lushnikov@chromium.org>
561
562         Web Inspector: [ACE] show execution line in Ace editor
563         https://bugs.webkit.org/show_bug.cgi?id=111575
564
565         Reviewed by Pavel Feldman.
566
567         Highlight execution line by the means of Ace full line markers.
568
569         No new tests.
570
571         * inspector/front-end/AceTextEditor.js:
572         (WebInspector.AceTextEditor.prototype.setExecutionLine):
573         (WebInspector.AceTextEditor.prototype.clearExecutionLine):
574         (WebInspector.AceTextEditor.prototype.setSelection):
575         * inspector/front-end/ace/acedevtools.css:
576         (.ace-editor-container):
577         (.webkit-execution-line):
578
579 2013-03-06  Yury Semikhatsky  <yurys@chromium.org>
580
581         Web Inspector: fix closure compiler warnings in the profiler code
582         https://bugs.webkit.org/show_bug.cgi?id=111581
583
584         Reviewed by Vsevolod Vlasov.
585
586         Added missing annotations. Replaced NativeProfileLauncherView with
587         ProfileLauncherView.
588
589         * inspector/InjectedScriptExterns.js:
590         (InjectedScriptHost.prototype.objectId):
591         (InjectedScriptHost.prototype.releaseObjectId):
592         * inspector/front-end/FlameChart.js:
593         (WebInspector.FlameChart.prototype._forEachNode):
594         * inspector/front-end/ProfileLauncherView.js:
595         * inspector/front-end/ProfilesPanel.js:
596
597 2013-03-06  Carlos Garcia Campos  <cgarcia@igalia.com>
598
599         [BlackBerry] Pass String::StrictConversion instead of true to String::utf8()
600         https://bugs.webkit.org/show_bug.cgi?id=111546
601
602         Reviewed by Rob Buis.
603
604         String::utf8() API changed in r134173.
605
606         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
607         (WebCore::MediaPlayerPrivate::notifyChallengeResult):
608
609 2013-03-06  Julien Chaffraix  <jchaffraix@webkit.org>
610
611         Remove the (dead) code for handling shorthands in StyleResolver / StyleBuilder
612         https://bugs.webkit.org/show_bug.cgi?id=111505
613
614         Unreviewed minimal build fix.
615
616         * css/StyleResolver.cpp:
617         (WebCore::StyleResolver::applyProperty):
618         Put CSSPropertyWebkitWrap under the proper if-guard.
619
620 2013-03-06  Vsevolod Vlasov  <vsevik@chromium.org>
621
622         Unreviewed follow up to r144928: front-end closure compilation fixes.
623
624         * inspector/front-end/FilteredItemSelectionDialog.js:
625         (WebInspector.JavaScriptOutlineDialog.prototype.dispose):
626         (WebInspector.OpenResourceDialog.prototype.dispose):
627         * inspector/front-end/StyleSheetOutlineDialog.js:
628         (WebInspector.StyleSheetOutlineDialog.prototype.dispose):
629
630 2013-03-06  Vsevolod Vlasov  <vsevik@chromium.org>
631
632         Web Inspector: Update open resource dialog when new uiSourceCodes are loaded.
633         https://bugs.webkit.org/show_bug.cgi?id=111327
634
635         Reviewed by Pavel Feldman.
636
637         * inspector/front-end/FilteredItemSelectionDialog.js:
638         (WebInspector.FilteredItemSelectionDialog):
639         (WebInspector.FilteredItemSelectionDialog.prototype.willHide):
640         (WebInspector.FilteredItemSelectionDialog.prototype._itemsLoaded):
641         (WebInspector.FilteredItemSelectionDialog.prototype._updateAfterItemsLoaded):
642         (WebInspector.FilteredItemSelectionDialog.prototype._filterItems.compareFunction):
643         (WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
644         (WebInspector.SelectionDialogContentProvider.prototype.dispose):
645         (WebInspector.JavaScriptOutlineDialog.prototype._didBuildOutlineChunk):
646         (WebInspector.OpenResourceDialog):
647         (WebInspector.OpenResourceDialog.prototype.requestItems):
648         (WebInspector.OpenResourceDialog.prototype._filterUISourceCode):
649         (WebInspector.OpenResourceDialog.prototype._uiSourceCodeAdded):
650         (WebInspector.OpenResourceDialog.prototype.dispose):
651         * inspector/front-end/StyleSheetOutlineDialog.js:
652         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
653         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems.didGetStyleSheet):
654
655 2013-03-06  Vladislav Kaznacheev  <kaznacheev@chromium.org>
656
657         Web Inspector: Move sidebar-specific styles to a separate file.
658         https://bugs.webkit.org/show_bug.cgi?id=111173
659
660         Reviewed by Pavel Feldman.
661
662         * WebCore.gypi:
663         * inspector/front-end/BreakpointsSidebarPane.js:
664         (WebInspector.JavaScriptBreakpointsSidebarPane):
665         (WebInspector.EventListenerBreakpointsSidebarPane):
666         * inspector/front-end/NativeBreakpointsSidebarPane.js:
667         (WebInspector.NativeBreakpointsSidebarPane):
668         * inspector/front-end/SidebarPane.js:
669         (WebInspector.SidebarPaneTitle):
670         (WebInspector.SidebarPaneStack):
671         (WebInspector.SidebarTabbedPane):
672         * inspector/front-end/WebKit.qrc:
673         * inspector/front-end/breakpointsList.css: Added.
674         (.sidebar-pane > .body .breakpoint-condition):
675         (#breakpoint-condition-input):
676         (ol.breakpoint-list):
677         (.breakpoints-list-deactivated):
678         (.breakpoint-list li):
679         (.breakpoint-list li:hover):
680         (.breakpoint-list .checkbox-elem):
681         (.breakpoint-list .source-text):
682         (.sidebar-pane .breakpoint-hit):
683         (li.breakpoint-hit .breakpoint-hit-marker):
684         (.event-listener-breakpoints .event-category):
685         (.event-listener-breakpoints.properties-tree .children li):
686         (.event-listener-breakpoints .checkbox-elem):
687         * inspector/front-end/elementsPanel.css:
688         (.panel.elements .sidebar-pane-toolbar > select):
689         (.panel.elements .sidebar-pane-toolbar > select:hover):
690         (.panel.elements .sidebar-pane-toolbar > select:active):
691         (.panel.elements .sidebar-pane-toolbar > select.select-settings):
692         (.panel.elements .sidebar-pane-toolbar > select.select-filter):
693         (.panel.elements .sidebar-pane-toolbar > select > option, .panel.elements .sidebar-pane-toolbar > select > hr):
694         * inspector/front-end/inspector.css:
695         (.event-bar .event-properties):
696         * inspector/front-end/scriptsPanel.css:
697         (.workers-list > li):
698         (a.worker-item):
699         (a.worker-item:hover):
700         * inspector/front-end/sidebarPane.css: Added.
701         (.sidebar-pane):
702         (.sidebar-pane > .body):
703         (.sidebar-pane > .body .info):
704         (.sidebar-pane > .body .placard + .info):
705         (.sidebar-pane.visible > .body):
706         (.sidebar-pane .section .properties):
707         (.sidebar-tabbed-pane .tabbed-pane-header):
708         (.sidebar-pane-stack > .sidebar-pane.visible:nth-last-of-type(1)):
709         (.sidebar-pane-title):
710         (.sidebar-pane-title + .sidebar-pane-title, .pane:not(.visible) + .sidebar-pane-title, .sidebar-pane-title:first-of-type):
711         (.sidebar-pane-title:active):
712         (.sidebar-pane-title::before):
713         (.sidebar-pane-title.expanded::before):
714         (.sidebar-pane-toolbar):
715         (.sidebar-pane-toolbar > *):
716         (.sidebar-pane-toolbar > .pane-title-button):
717         (.sidebar-pane-toolbar > .pane-title-button:hover):
718         (.sidebar-pane-toolbar > .pane-title-button:active, .sidebar-pane-toolbar > .pane-title-button.toggled):
719         (.sidebar-pane-toolbar > .pane-title-button.add):
720         (.sidebar-pane-toolbar > .pane-title-button.element-state):
721         (.sidebar-pane-toolbar > .pane-title-button.refresh):
722         (.sidebar-pane-subtitle):
723         (body.platform-windows .sidebar-pane-subtitle):
724         (.sidebar-pane-subtitle input, .section .header input[type=checkbox]):
725
726 2013-03-06  Vladislav Kaznacheev  <kaznacheev@chromium.org>
727
728         Web Inspector: Combine style-related panes into a single tab when Elements panel is split horizontally.
729         https://bugs.webkit.org/show_bug.cgi?id=111550
730         Reviewed by Pavel Feldman.
731
732         Grouping the Elements sidebar panes into two tabbed panes proved to be
733         confusing and inconvenient. Put all the Elements sidebar panes into a single tabbed pane.
734         Combined Styles, Computed Style and Metrics into a single pane.
735
736         * inspector/front-end/ElementsPanel.js:
737         (WebInspector.ElementsPanel.prototype._splitVertically):
738         (WebInspector.ElementsPanel.prototype.addExtensionSidebarPane):
739         * inspector/front-end/elementsPanel.css:
740         (.sidebar-pane.composite):
741         (.sidebar-pane.composite > .body):
742         (.sidebar-pane.composite .metrics):
743         (.sidebar-pane.composite .sidebar-pane-toolbar):
744         (.sidebar-pane.composite .sidebar-pane-toolbar > .sidebar-pane-subtitle):
745         (.sidebar-pane.composite .styles-section.read-only):
746
747 2013-03-05  Yury Semikhatsky  <yurys@chromium.org>
748
749         Web Inspector: support stable remote object ids
750         https://bugs.webkit.org/show_bug.cgi?id=109908
751
752         Reviewed by Pavel Feldman.
753
754         Introduced a map from javascript object to its id. It guarantees
755         that object is assined id only once (unless it is explicitely
756         released). The map is per execution context and is stored in
757         InjectedScriptManager.
758
759         Test: inspector-protocol/persistent-id.html
760
761         * bindings/js/JSInjectedScriptHostCustom.cpp:
762         (WebCore::JSInjectedScriptHost::objectId):
763         (WebCore):
764         (WebCore::JSInjectedScriptHost::releaseObjectId):
765         * bindings/js/ScriptObject.h:
766         (WTF):
767         (WTF::ScriptObjectHash::hash):
768         (WTF::ScriptObjectHash::equal):
769         (ScriptObjectHash):
770         * bindings/v8/ScriptObject.h:
771         (WTF):
772         (WTF::ScriptObjectHash::hash):
773         (WTF::ScriptObjectHash::equal):
774         (ScriptObjectHash):
775         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
776         (WebCore::V8InjectedScriptHost::objectIdMethodCustom):
777         (WebCore):
778         (WebCore::V8InjectedScriptHost::releaseObjectIdMethodCustom):
779         * inspector/InjectedScriptHost.cpp:
780         (WebCore::InjectedScriptHost::create):
781         (WebCore::InjectedScriptHost::InjectedScriptHost):
782         (WebCore::InjectedScriptHost::disconnect):
783         (WebCore::InjectedScriptHost::objectId):
784         (WebCore):
785         (WebCore::InjectedScriptHost::releaseObjectId):
786         * inspector/InjectedScriptHost.h:
787         (WebCore):
788         (InjectedScriptHost):
789         * inspector/InjectedScriptHost.idl:
790         * inspector/InjectedScriptManager.cpp:
791         (InjectedScriptManager::ObjectIdMap):
792         (WebCore::InjectedScriptManager::ObjectIdMap::ObjectIdMap):
793         (WebCore::InjectedScriptManager::ObjectIdMap::objectId):
794         (WebCore::InjectedScriptManager::ObjectIdMap::releaseObjectId):
795         (WebCore):
796         (WebCore::InjectedScriptManager::InjectedScriptManager):
797         (WebCore::InjectedScriptManager::discardInjectedScripts):
798         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
799         (WebCore::InjectedScriptManager::objectId):
800         (WebCore::InjectedScriptManager::releaseObjectId):
801         * inspector/InjectedScriptManager.h:
802         (InjectedScriptManager):
803         * inspector/InjectedScriptSource.js:
804         (.):
805
806 2013-03-06  Marja Hölttä  <marja@chromium.org>
807
808         REGRESSION(r144617): Wrong usage of overwritten variable in toDOMWindow (V8Binding.cpp)
809         https://bugs.webkit.org/show_bug.cgi?id=111565
810
811         Reviewed by Jochen Eisinger.
812
813         In toDOMWindow, the variable "global" was first nuked, and then used again. This
814         change was introduced in r144617.
815
816         No new tests (no functional changes).
817
818         * bindings/v8/V8Binding.cpp:
819         (WebCore::toDOMWindow):
820
821 2013-03-06  Yury Semikhatsky  <yurys@chromium.org>
822
823         Web Inspector: use regular eval instead of injectScript for front-end extension API
824         https://bugs.webkit.org/show_bug.cgi?id=111529
825
826         Reviewed by Pavel Feldman.
827
828         Removed InjectedScriptManager::injectScript and replaced all of it calls
829         except the actual script injection with ScriptController::executeScript.
830
831         * inspector/InjectedScriptManager.cpp:
832         (WebCore::InjectedScriptManager::injectedScriptFor):
833         * inspector/InjectedScriptManager.h:
834         (InjectedScriptManager):
835         * inspector/InspectorAgent.cpp:
836         (WebCore::InspectorAgent::didClearWindowObjectInWorld):
837         * inspector/InspectorPageAgent.cpp:
838         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
839         * inspector/front-end/DOMAgent.js:
840         (WebInspector.DOMAgent.prototype._emulateTouchEventsChanged.get if):
841         * inspector/front-end/ExtensionAPI.js:
842         (buildExtensionAPIInjectedScript):
843         * inspector/front-end/ExtensionServer.js:
844         (WebInspector.ExtensionServer.prototype._onReload):
845
846 2013-03-06  Allan Sandfeld Jensen  <allan.jensen@digia.com>
847
848         [Qt] Do not disable C++0x
849         https://bugs.webkit.org/show_bug.cgi?id=111559
850
851         Reviewed by Kenneth Rohde Christiansen.
852
853         * WebCore.pri:
854
855 2013-03-06  Julien Chaffraix  <jchaffraix@webkit.org>
856
857         Remove the (dead) code for handling shorthands in StyleResolver / StyleBuilder
858         https://bugs.webkit.org/show_bug.cgi?id=111505
859
860         Reviewed by Alexis Menard.
861
862         The CSS parsing code expands shorthands (with the exception of 'font') to their longhands.
863         This means that all the code in StyleResolver / StyleBuilder to handle shorthands is basically
864         dead and shouldn't be there. The reason for it to be is that people didn't know about shorthands
865         expansion and thus copied existing code.
866
867         This change addresses both issues by removing the code and adding ASSERTs that should prevent people
868         from adding more dead code.
869
870         Refactoring, covered by existing tests.
871
872         * css/StylePropertyShorthand.h: Added isExpandedShorthand.
873         * css/StylePropertyShorthand.cpp:
874         (WebCore::isExpandedShorthand):
875         Added this function that ignores 'font' as it is the only shorthand that is no consistently expanded
876         to account for system fonts.
877
878         * css/StyleBuilder.cpp:
879         (WebCore::StyleBuilder::StyleBuilder):
880         Removed the shorthands.
881
882         * css/StyleBuilder.h:
883         (WebCore::StyleBuilder::setPropertyHandler):
884         Added ASSERTs that people don't add shorthand handling.
885
886         * css/StyleResolver.cpp:
887         (WebCore::isValidVisitedLinkProperty):
888         Removed all the shorthands (shouldn't be reachable unless the ASSERT in applyProperty
889         triggers).
890
891         (WebCore::StyleResolver::applyProperty):
892         Removed all shorthand handling code, moved the shorthands together and added some ASSERT
893         to ensure people don't abuse the code and re-add some of it back by mistake.
894
895 2013-03-05  Kent Tamura  <tkent@chromium.org>
896
897         Rename WebCore/editing/visible_units.* to VisibleUnits.*
898         https://bugs.webkit.org/show_bug.cgi?id=111426
899
900         Reviewed by Alexey Proskuryakov.
901
902         No new tests. Just a refactoring.
903
904         * CMakeLists.txt:
905         * GNUmakefile.list.am:
906         * Target.pri:
907         * WebCore.gypi:
908         * WebCore.vcproj/WebCore.vcproj:
909         * WebCore.vcxproj/WebCore.vcxproj:
910         * WebCore.vcxproj/WebCore.vcxproj.filters:
911         * WebCore.xcodeproj/project.pbxproj:
912         * accessibility/AccessibilityNodeObject.cpp:
913         * accessibility/AccessibilityObject.cpp:
914         * accessibility/AccessibilityRenderObject.cpp:
915         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
916         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
917         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
918         * dom/Position.cpp:
919         * dom/Range.cpp:
920         * editing/AlternativeTextController.cpp:
921         * editing/ApplyBlockElementCommand.cpp:
922         * editing/ApplyStyleCommand.cpp:
923         * editing/CompositeEditCommand.cpp:
924         * editing/DeleteSelectionCommand.cpp:
925         * editing/EditingAllInOne.cpp:
926         * editing/EditingStyle.cpp:
927         * editing/Editor.cpp:
928         * editing/FormatBlockCommand.cpp:
929         * editing/FrameSelection.cpp:
930         * editing/IndentOutdentCommand.cpp:
931         * editing/InsertLineBreakCommand.cpp:
932         * editing/InsertListCommand.cpp:
933         * editing/InsertParagraphSeparatorCommand.cpp:
934         * editing/InsertTextCommand.cpp:
935         * editing/ReplaceSelectionCommand.cpp:
936         * editing/SurroundingText.cpp:
937         * editing/TextCheckingHelper.cpp:
938         * editing/TextIterator.cpp:
939         * editing/TypingCommand.cpp:
940         * editing/VisiblePosition.cpp:
941         * editing/VisibleSelection.cpp:
942         * editing/VisibleUnits.cpp: Copied from Source/WebCore/editing/visible_units.cpp.
943         * editing/VisibleUnits.h: Copied from Source/WebCore/editing/visible_units.h.
944         * editing/htmlediting.cpp:
945         * editing/markup.cpp:
946         * editing/visible_units.cpp: Removed.
947         * editing/visible_units.h: Removed.
948         * page/Frame.cpp:
949         * page/mac/FrameMac.mm:
950         * platform/win/EditorWin.cpp:
951
952 2013-03-06  Alexis Menard  <alexis@webkit.org>
953
954         Do not add CSSPropertyBorderImage shorthand part of the property list when parsing CSS border property
955         https://bugs.webkit.org/show_bug.cgi?id=111481
956
957         Reviewed by Julien Chaffraix.
958
959         After http://trac.webkit.org/changeset/135848 and more generally we do not 
960         add shorthand directly into the property list used afterwards to build
961         StylePropertySet but we rather expand the shorthand to add the
962         longhands. CSSPropertyBorderImage is a shorthand and it should follow
963         that rule, so when we successfully parsed CSS border property and we
964         should reset border-image then we should reset the longhands too.
965
966         Test: LayoutTests/inspector/styles/styles-new-API-expected.txt which
967         reflects the fact that we add longhands instead of the shorthand. All
968         the other tests should not regress.
969
970         * css/CSSParser.cpp:
971         (WebCore::CSSParser::parseValue):
972
973 2013-03-06  Luiz Agostini  <luiz.agostini@nokia.com>
974
975         Accelerated overflow scrolling for Coordinated Graphics.
976         https://bugs.webkit.org/show_bug.cgi?id=110323
977
978         Reviewed by Noam Rosenthal.
979
980         A scroll offset is applied to individual layers on UI process and the
981         web process is notified assynchronously.
982         The new API WKCoordinatedScene may be used to scroll layers in the UI process.
983
984         Tests will be added on bug #111140.
985
986         Scrolling coordinator is used to provide a ScrollableArea to CoordinatedGraphicsLayer.
987
988         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
989         (WebCore::ScrollingCoordinatorCoordinatedGraphics::scrollableAreaScrollLayerDidChange):
990         (WebCore):
991         (WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):
992         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
993         (ScrollingCoordinatorCoordinatedGraphics):
994
995         GraphicsLayerTextureMapper is responsible for receiving the 'did commit' messages and to pass
996         them to its TextureMapperLayer on the appropriated time.
997
998         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
999         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
1000         (WebCore::GraphicsLayerTextureMapper::didCommitScrollOffset):
1001         (WebCore):
1002         (WebCore::GraphicsLayerTextureMapper::setIsScrollable):
1003         (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
1004         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
1005         (WebCore::GraphicsLayerTextureMapper::setScrollClient):
1006         (WebCore::GraphicsLayerTextureMapper::setID):
1007         (GraphicsLayerTextureMapper):
1008         (WebCore::GraphicsLayerTextureMapper::isScrollable):
1009
1010         TextureMapperLayer is responsible for applying the requested scroll offset and for
1011         sending the commit messages to web process. It is also able to hittest layers and identify
1012         the ones that are scrollable.
1013
1014         * platform/graphics/texmap/TextureMapperLayer.cpp:
1015         (WebCore::TextureMapperLayer::hitTest):
1016         (WebCore):
1017         (WebCore::TextureMapperLayer::scrollableLayerHitTestCondition):
1018         (WebCore::TextureMapperLayer::findScrollableContentsLayerAt):
1019         (WebCore::TextureMapperLayer::mapScrollOffset):
1020         (WebCore::TextureMapperLayer::commitScrollOffset):
1021         (WebCore::TextureMapperLayer::scrollBy):
1022         (WebCore::TextureMapperLayer::didCommitScrollOffset):
1023         * platform/graphics/texmap/TextureMapperLayer.h:
1024         (TextureMapperLayer):
1025         (ScrollingClient):
1026         (WebCore::TextureMapperLayer::TextureMapperLayer):
1027         (WebCore::TextureMapperLayer::setID):
1028         (WebCore::TextureMapperLayer::id):
1029         (WebCore::TextureMapperLayer::setScrollClient):
1030         (WebCore::TextureMapperLayer::setIsScrollable):
1031         (WebCore::TextureMapperLayer::isScrollable):
1032         (WebCore::TextureMapperLayer::adjustedPosition):
1033
1034         CoordinatedGraphicsLayer receives the commit messages and updates its ScrollableArea.
1035
1036         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
1037         (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
1038         (WebCore::CoordinatedGraphicsLayer::setScrollableArea):
1039         (WebCore):
1040         (WebCore::CoordinatedGraphicsLayer::commitScrollOffset):
1041         (WebCore::CoordinatedGraphicsLayer::resetLayerState):
1042         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
1043         (WebCore):
1044         (CoordinatedGraphicsLayer):
1045         (WebCore::CoordinatedGraphicsLayer::isScrollable):
1046
1047         CoordinatedGraphicsScene receives the commit messages from TextureMapperLayer and
1048         dispatches them on the main thread. It also has a new method that is used to find
1049         the topmost scrollable layer at a given point.
1050
1051         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
1052         (WebCore::CoordinatedGraphicsScene::setLayerState):
1053         (WebCore::CoordinatedGraphicsScene::createLayer):
1054         (WebCore::CoordinatedGraphicsScene::dispatchCommitScrollOffset):
1055         (WebCore):
1056         (WebCore::CoordinatedGraphicsScene::commitScrollOffset):
1057         (WebCore::CoordinatedGraphicsScene::findScrollableContentsLayerAt):
1058         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
1059         (WebCore):
1060         (CoordinatedGraphicsSceneClient):
1061         (CoordinatedGraphicsScene):
1062
1063         New fields have been added to CoordinatedGraphicsLayerState.
1064
1065         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
1066         (CoordinatedGraphicsLayerState):
1067
1068 2013-03-06  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1069
1070         REGGRESSION (r142112): It made compositing tests fail on EFL, Qt.
1071         https://bugs.webkit.org/show_bug.cgi?id=109291
1072
1073         Reviewed by Kenneth Rohde Christiansen.
1074
1075         Report we support fixed layers.
1076
1077         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
1078         (WebCore::ScrollingCoordinatorCoordinatedGraphics::supportsFixedPositionLayers):
1079         (ScrollingCoordinatorCoordinatedGraphics):
1080
1081 2013-03-06  Sheriff Bot  <webkit.review.bot@gmail.com>
1082
1083         Unreviewed, rolling out r144859.
1084         http://trac.webkit.org/changeset/144859
1085         https://bugs.webkit.org/show_bug.cgi?id=111519
1086
1087         Introduced a test that calls non-exist function on non-
1088         Chromium ports and crash on Chromium (Requested by rniwa on
1089         #webkit).
1090
1091         * html/HTMLAudioElement.h:
1092         (WebCore::HTMLAudioElement::hasPendingActivity):
1093         (HTMLAudioElement):
1094         * html/HTMLAudioElement.idl:
1095         * html/HTMLMediaElement.cpp:
1096         (WebCore::HTMLMediaElement::hasPendingActivity):
1097         * html/HTMLMediaElement.idl:
1098
1099 2013-03-06  Ilya Tikhonovsky  <loislo@chromium.org>
1100
1101         Web Inspector: Could not open Profiles panel.
1102         https://bugs.webkit.org/show_bug.cgi?id=111535
1103
1104         Reviewed by Alexander Pavlov.
1105
1106         * inspector/front-end/CPUProfileView.js:
1107         * inspector/front-end/ProfilesPanel.js:
1108
1109 2013-03-06  Tony Chang  <tony@chromium.org>
1110
1111         Crash during middle mouse click when page is removed
1112         https://bugs.webkit.org/show_bug.cgi?id=111489
1113
1114         Reviewed by Hajime Morrita.
1115
1116         Check for a null page that can happen if we remove the document from the DOM.
1117         The other methods in EventHandler also check for a null page.
1118
1119         Test: editing/pasteboard/selection-paste-crash.html
1120
1121         * page/EventHandler.cpp:
1122         (WebCore::EventHandler::handlePasteGlobalSelection):
1123
1124 2013-03-05  Eric Seidel  <eric@webkit.org>
1125
1126         Replace shouldLazyAttach bool with an enum for readability
1127         https://bugs.webkit.org/show_bug.cgi?id=111503
1128
1129         Reviewed by Dimitri Glazkov.
1130
1131         No behavioral change.
1132
1133         * bindings/cpp/WebDOMNodeCustom.cpp:
1134         (WebDOMNode::insertBefore):
1135         (WebDOMNode::replaceChild):
1136         (WebDOMNode::appendChild):
1137         * bindings/js/JSNodeCustom.cpp:
1138         (WebCore::JSNode::insertBefore):
1139         (WebCore::JSNode::replaceChild):
1140         (WebCore::JSNode::appendChild):
1141         * bindings/v8/custom/V8NodeCustom.cpp:
1142         (WebCore):
1143         (WebCore::V8Node::insertBeforeMethodCustom):
1144         (WebCore::V8Node::replaceChildMethodCustom):
1145         (WebCore::V8Node::appendChildMethodCustom):
1146         * dom/ContainerNode.cpp:
1147         (WebCore):
1148         (WebCore::ContainerNode::insertBefore):
1149         (WebCore::ContainerNode::replaceChild):
1150         (WebCore::ContainerNode::appendChild):
1151         (WebCore::updateTreeAfterInsertion):
1152         * dom/ContainerNode.h:
1153         (ContainerNode):
1154         * dom/Node.cpp:
1155         (WebCore::Node::insertBefore):
1156         (WebCore::Node::replaceChild):
1157         (WebCore::Node::appendChild):
1158         * dom/Node.h:
1159         (Node):
1160         * editing/AppendNodeCommand.cpp:
1161         (WebCore::AppendNodeCommand::doApply):
1162         * editing/InsertNodeBeforeCommand.cpp:
1163         (WebCore::InsertNodeBeforeCommand::doApply):
1164         * html/shadow/MediaControlsApple.cpp:
1165         (WebCore::MediaControlsApple::createControls):
1166         * html/shadow/MediaControlsBlackBerry.cpp:
1167         (WebCore::MediaControlsBlackBerry::createControls):
1168         * html/shadow/MediaControlsChromium.cpp:
1169         (WebCore::MediaControlsChromium::initializeControls):
1170         * html/shadow/MediaControlsChromiumAndroid.cpp:
1171         (WebCore::MediaControlsChromiumAndroid::createControls):
1172
1173 2013-03-05  Hajime Morrita  <morrita@google.com>
1174
1175         Custom Elements: CustomElementConstructor::m_name doesn't have any good use.
1176         https://bugs.webkit.org/show_bug.cgi?id=111523
1177
1178         Reviewed by Kentaro Hara.
1179
1180         This change removes CustomElementConstructor::m_name and renames
1181         m_tagName to m_name. Now generated function name is same as interface name.
1182
1183         Originally, m_name was added to specify the generated constructor
1184         name. An early version of custom element allows to give the name,
1185         but it no longer says anything about that.
1186
1187         The rename is to align the semantics of type extension mechanism
1188         of Custom Elements, where the name of a custom element isn't
1189         necessarily a tag name.
1190
1191         No new tests. Just removing old code.
1192
1193         * bindings/scripts/CodeGeneratorV8.pm:
1194         (GenerateHeader):
1195         * dom/CustomElementConstructor.cpp:
1196         (WebCore::CustomElementConstructor::create):
1197         (WebCore::CustomElementConstructor::CustomElementConstructor):
1198         (WebCore::CustomElementConstructor::createElement):
1199         * dom/CustomElementConstructor.h:
1200         (CustomElementConstructor):
1201         (WebCore::CustomElementConstructor::name):
1202         * dom/CustomElementRegistry.cpp:
1203         (WebCore::CustomElementRegistry::registerElement):
1204
1205 2013-03-05  Ilya Tikhonovsky  <loislo@chromium.org>
1206
1207         Web Inspector: Flame Chart. Provide node context info in a popover when mouse hovers over a flame chart item.
1208         https://bugs.webkit.org/show_bug.cgi?id=111442
1209
1210         Reviewed by Yury Semikhatsky.
1211
1212         FlameChart is a canvas so it is not possible to attach the popover to the items on it.
1213         It would be a bit tricky to support an offset due to complex behaviour of the popover.
1214         The simplest solution is to create a fake anchor element and move it to the right position.
1215
1216         * inspector/front-end/FlameChart.js:
1217         (WebInspector.FlameChart):
1218         (WebInspector.FlameChart.prototype._getPopoverAnchor):
1219         (WebInspector.FlameChart.prototype._showPopover):
1220         (WebInspector.FlameChart.prototype._onMouseMove):
1221         (WebInspector.FlameChart.prototype.findNodeCallback):
1222         (WebInspector.FlameChart.prototype._coordinatesToNode):
1223         (WebInspector.FlameChart.prototype.onResize):
1224         * inspector/front-end/flameChart.css:
1225         (.flame-chart .item-anchor):
1226
1227 2013-03-05  Csaba Osztrogonác  <ossy@webkit.org>
1228
1229         Unreviewed buildfix after r144787. Add missing USE(GRAPHICS_SURFACE) guards.
1230
1231         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
1232         (WebCore::CoordinatedGraphicsScene::setLayerState):
1233         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
1234         (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
1235
1236 2013-03-05  Geoffrey Garen  <ggaren@apple.com>
1237
1238         Autoreleased cached pages slow down the PLT by 2%
1239         https://bugs.webkit.org/show_bug.cgi?id=111522
1240
1241         Reviewed by Filip Pizlo.
1242
1243         Let's stop doing that.
1244
1245         2% PLT speedup.
1246
1247         * history/PageCache.cpp:
1248         (WebCore::PageCache::remove):
1249
1250 2013-03-05  Hayato Ito  <hayato@chromium.org>
1251
1252         [Shadow] Implements event re-targeting for Touch Events.
1253         https://bugs.webkit.org/show_bug.cgi?id=107800
1254
1255         Reviewed by Dimitri Glazkov.
1256
1257         So far, Touch Events have been intentionally disabled in shadow
1258         tree since it allows users to access internal nodes in shadow tree
1259         by accessing Touch Event's information.
1260
1261         This patch re-targets all individual touch point's target in
1262         TouchList (touches, targetTouches and changedTouches) owned by a Touch Event
1263         before the Touch Event is dispatched so that we won't break an
1264         upper boundary of shadow DOM.
1265
1266         Touch Events re-targeting is similar to that of Mouse Events
1267         re-targeting. The difference is that a Touch Event can have more
1268         than one related target because of multiple touches. We must
1269         re-target all individual touch points which can be referred from
1270         the Touch Event.
1271
1272         Now, Touch Events can be fired in shadow tree. I've removed the
1273         existing limitation.
1274
1275         Test: fast/dom/shadow/touch-event-retargeting.html
1276
1277         * dom/EventContext.cpp:
1278         (WebCore::EventContext::isTouchEventContext):
1279         (WebCore):
1280         (WebCore::TouchEventContext::TouchEventContext):
1281         (WebCore::TouchEventContext::~TouchEventContext):
1282         (WebCore::TouchEventContext::handleLocalEvents):
1283         (WebCore::TouchEventContext::isTouchEventContext):
1284         (WebCore::TouchEventContext::checkReachability):  Used for assertion of reachability for each Touch point.
1285         * dom/EventContext.h:
1286         (WebCore):
1287         (EventContext):
1288         (TouchEventContext): Introduced to hold necessary information for re-targeting Touch event.
1289         (WebCore::TouchEventContext::touches):
1290         (WebCore::TouchEventContext::targetTouches):
1291         (WebCore::TouchEventContext::changedTouches):
1292         (WebCore::EventContext::isReachable):
1293         * dom/EventRetargeter.cpp:
1294         (WebCore::EventRetargeter::calculateEventPath):
1295         (WebCore::EventRetargeter::adjustForTouchEvent):
1296         (WebCore):
1297         (WebCore::EventRetargeter::adjustTouchList):
1298         (WebCore::EventRetargeter::adjustForRelatedTarget):
1299         (WebCore::EventRetargeter::calculateAdjustedNodes): Updated so that this can be used for Touch point re-targeting.
1300         (WebCore::EventRetargeter::buildRelatedNodeMap):
1301         * dom/EventRetargeter.h:
1302         (WebCore):
1303         (EventRetargeter):
1304         * dom/Node.cpp:
1305         (WebCore::Node::dispatchEvent):
1306         (WebCore):
1307         (WebCore::Node::dispatchTouchEvent):
1308         * dom/Node.h:
1309         (WebCore):
1310         (Node):
1311         * dom/Touch.cpp:
1312         (WebCore::Touch::Touch):
1313         (WebCore):
1314         (WebCore::Touch::cloneWithNewTarget):
1315         * dom/Touch.h:
1316         (Touch):
1317         * dom/TouchEvent.cpp:
1318         (WebCore::TouchEventDispatchMediator::create):
1319         (WebCore):
1320         (WebCore::TouchEventDispatchMediator::TouchEventDispatchMediator):
1321         (WebCore::TouchEventDispatchMediator::event):
1322         (WebCore::TouchEventDispatchMediator::dispatchEvent):
1323         * dom/TouchEvent.h:
1324         (TouchEvent):
1325         (WebCore::TouchEvent::setTouches):
1326         (WebCore::TouchEvent::setTargetTouches):
1327         (WebCore::TouchEvent::setChangedTouches):
1328         (TouchEventDispatchMediator):
1329         (WebCore):
1330         (WebCore::toTouchEvent):
1331         * dom/TouchList.cpp:
1332         (WebCore::TouchList::item):
1333         (WebCore):
1334         * dom/TouchList.h:
1335         (TouchList):
1336         * page/EventHandler.cpp:
1337         (WebCore::EventHandler::hitTestResultInFrame): Removed the limitation. Adjusting is no longer done here.
1338         (WebCore::EventHandler::handleTouchEvent):
1339
1340 2013-03-05  Hajime Morrita  <morrita@google.com>
1341
1342         [Custom Elements][V8] Custom Element doesn't need its own WrapperTypeInfo
1343         https://bugs.webkit.org/show_bug.cgi?id=111411
1344
1345         Reviewed by Kentaro Hara.
1346
1347         No new tests. No observable change yet.
1348
1349         This is a preparation for Bug 110436, where WebKit is going to
1350         allow any HTML element to be a superclass of custom elements.
1351
1352         This change eliminates WrapperTypeInfo for custom element. Instead
1353         of that, the wrapper of a custom element picks WrapperTypeInfo
1354         from most descendant built-in HTML element. For example, think about
1355         following hierarchy:
1356
1357         - ... <- HTMLElement <- HTMLDivElememnt <- ExistingCustomElement <- NewCustomElement
1358
1359         In this case, both ExistingCustomElement and NewCustomElement has
1360         HTMLDivElememnt's type info. This is because HTMLDivElememnt is
1361         the most descendant (or "the nearest") built-in HTML
1362         element. (HTMLElement isn't the most descendant.
1363         ExistingCustomElement isn't a built-in.)
1364
1365         Using such WrapperTypeInfos, created custom element wrappers can
1366         get appropriate set of method and properties regardless of its
1367         super-elements.
1368
1369         This change tells the prototype object of each built-in object
1370         which WrapperTypeInfo the native backing wants:
1371         HTMLDivElememnt.prototype knows V8HTMLDivElement::info for
1372         example. The pointer to the type info is stored into an internal
1373         field. On wrapper construction, createWrapper() walks up the
1374         prototype chain and pick the first one.
1375
1376         * bindings/v8/V8DOMConfiguration.cpp:
1377         (WebCore::V8DOMConfiguration::configureTemplate):
1378         * bindings/v8/V8HTMLCustomElement.cpp:
1379         (WebCore::findWrapperTypeOf):
1380         (WebCore::V8HTMLCustomElement::createWrapper):
1381         * bindings/v8/V8HTMLCustomElement.h:
1382         * bindings/v8/V8PerContextData.cpp:
1383         (WebCore::V8PerContextData::constructorForTypeSlowCase):
1384         * bindings/v8/WrapperTypeInfo.h:
1385         (WebCore):
1386
1387 2013-03-05  Aaron Colwell  <acolwell@chromium.org>
1388
1389         Heap-use-after-free in WebCore::HTMLMediaElement::~HTMLMediaElement
1390         https://bugs.webkit.org/show_bug.cgi?id=110623
1391
1392         Reviewed by Eric Seidel.
1393
1394         Test: http/tests/misc/delete-frame-during-readystatechange-with-gc-after-video-removal.html
1395
1396         * html/HTMLAudioElement.h:
1397         (HTMLAudioElement):
1398         * html/HTMLAudioElement.idl:
1399         * html/HTMLMediaElement.cpp:
1400         (WebCore::HTMLMediaElement::hasPendingActivity):
1401         * html/HTMLMediaElement.idl:
1402
1403 2013-03-05  Chris Fleizach  <cfleizach@apple.com>
1404  
1405         AX: Support aria-posinset/setsize
1406         https://bugs.webkit.org/show_bug.cgi?id=109725
1407
1408         Reviewed by Tim Horton.
1409
1410         Expose aria-setsize and aria-posinset through accessibility.
1411         Right now only the Mac platform exposes them.
1412
1413         Test: platform/mac/accessibility/aria-setsize-posinset.html
1414
1415         * accessibility/AccessibilityObject.cpp:
1416         (WebCore::AccessibilityObject::supportsARIASetSize):
1417         (WebCore):
1418         (WebCore::AccessibilityObject::supportsARIAPosInset):
1419         (WebCore::AccessibilityObject::ariaSetSize):
1420         (WebCore::AccessibilityObject::ariaPosInset):
1421         * accessibility/AccessibilityObject.h:
1422         (AccessibilityObject):
1423         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
1424         (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
1425         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
1426         * html/HTMLAttributeNames.in:
1427
1428
1429 2013-03-05  Peter Nelson  <peter@peterdn.com>
1430
1431         [WinCairo] Support for cookies is incomplete
1432         https://bugs.webkit.org/show_bug.cgi?id=110147
1433         
1434         Expired and HttpOnly cookies no longer accessible from JavaScript.
1435         Cookies set in JavaScript now have correct domain/path.
1436
1437         Reviewed by Brent Fulgham.
1438
1439         Test: http/tests/cookies/http-get-cookie-set-in-js.html
1440
1441         * platform/network/curl/CookieJarCurl.cpp:
1442         (WebCore):
1443         (WebCore::addMatchingCurlCookie):
1444         (WebCore::getNetscapeCookieFormat):
1445         (WebCore::setCookiesFromDOM):
1446         (WebCore::cookieRequestHeaderFieldValue):
1447
1448 2013-03-05  Alec Flett  <alecflett@chromium.org>
1449
1450         Fix mac clang build with long long
1451         https://bugs.webkit.org/show_bug.cgi?id=111495
1452
1453         Unreviewed fix for mac build.
1454
1455         * Modules/indexeddb/IDBBackingStore.cpp:
1456         (WebCore::IDBBackingStore::IDBBackingStore):
1457
1458 2013-03-05  Alec Flett  <alecflett@chromium.org>
1459
1460         Fix mac clang build with long long
1461         https://bugs.webkit.org/show_bug.cgi?id=111495
1462
1463         Unreviewed fix for mac build.
1464
1465         * Modules/indexeddb/IDBBackingStore.cpp:
1466         (WebCore::IDBBackingStore::IDBBackingStore):
1467
1468 2013-03-05  Aaron Colwell  <acolwell@chromium.org>
1469
1470         Add V8Document.h include when the V8 code generator creates a toV8(Document*) call.
1471         https://bugs.webkit.org/show_bug.cgi?id=111486
1472
1473         Reviewed by Adam Barth.
1474
1475         No new tests. This doesn't change user visible behavior.
1476
1477         * bindings/scripts/CodeGeneratorV8.pm:
1478         (GenerateNamedConstructor):
1479         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1480
1481 2013-03-05  Shawn Singh  <shawnsingh@chromium.org>
1482
1483         Fix default background of a dragged image.
1484         https://bugs.webkit.org/show_bug.cgi?id=110512
1485
1486         Reviewed by Tony Chang.
1487
1488         Transparent background color (particularly visible in the padding
1489         of an element) was not being respected. The solution is to
1490         initially fill the drag image with transparent instead of white,
1491         so that any color background works correctly. This patch does not
1492         affect Apple Mac or Win platforms, given that this part of the
1493         code is #if guarded from those platforms.
1494
1495         Manual test added:
1496           ManualTests/drag-background-with-padding.html
1497
1498         Infrastructure for retrieving the drag image for pixel testing
1499         does not yet exist.
1500
1501         * page/Frame.cpp:
1502         (WebCore::Frame::nodeImage):
1503
1504 2013-03-05  Emil A Eklund  <eae@chromium.org>
1505
1506         ASSERTION FAILED: i < size(), UNKNOWN in WebCore::RenderTableSection::layout
1507         https://bugs.webkit.org/show_bug.cgi?id=108838
1508
1509         Reviewed by Levi Weintraub.
1510         
1511         Ensure that RenderTable::recalcSections is called when moving a
1512         TableSection by calling setNeedsSectionRecalc in addChild for
1513         TableSections.
1514
1515         Test: fullscreen/full-screen-table-section.html
1516
1517         * rendering/RenderTable.cpp:
1518         (WebCore::RenderTable::addChild):
1519
1520 2013-03-05  Kenneth Russell  <kbr@google.com>
1521
1522         Upgrade ANGLE to r1987
1523         https://bugs.webkit.org/show_bug.cgi?id=111381
1524
1525         Reviewed by Dean Jackson.
1526
1527         Covered by existing tests. Ran WebGL conformance tests in Safari
1528         to ensure correct operation of patch.
1529
1530         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
1531         (WebCore::GraphicsContext3D::GraphicsContext3D):
1532         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
1533         (WebCore::GraphicsContext3D::GraphicsContext3D):
1534         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
1535         (WebCore::GraphicsContext3D::GraphicsContext3D):
1536         * platform/graphics/mac/GraphicsContext3DMac.mm:
1537         (WebCore::GraphicsContext3D::GraphicsContext3D):
1538         * platform/graphics/qt/GraphicsContext3DQt.cpp:
1539         (WebCore::GraphicsContext3DPrivate::initializeANGLE):
1540             Changed all ports to query for highp support in fragment
1541             shaders and conditionally enable it in ANGLE shader translator.
1542
1543 2013-03-05  Alec Flett  <alecflett@chromium.org>
1544
1545         IndexedDB: Add IDBBackingStoreTest
1546         https://bugs.webkit.org/show_bug.cgi?id=111233
1547
1548         Reviewed by Adam Barth.
1549
1550         These are tweaks to make IDBBackingStore more easily testable.
1551
1552         * Modules/indexeddb/IDBBackingStore.cpp:
1553         (WebCore::IDBBackingStore::IDBBackingStore): Allow use without a backing store.
1554
1555 2013-03-04  James Robinson  <jamesr@chromium.org>
1556
1557         [chromium] Move check for threaded compositing from WebCompositorSupport to Platform
1558         https://bugs.webkit.org/show_bug.cgi?id=111386
1559
1560         Reviewed by Adrienne Walker.
1561
1562         This moves checks for whether threaded compositing is enabled from WebCompositorSupport
1563         to Platform. In the case of Canvas2DLayerBridge, the check is moved completely out of
1564         the class to make it easier for tests to specify the threaded configuration to use in the test.
1565
1566         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
1567         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
1568         * platform/graphics/chromium/Canvas2DLayerBridge.h:
1569         (WebCore::Canvas2DLayerBridge::create):
1570         (Canvas2DLayerBridge):
1571         * platform/graphics/chromium/DrawingBufferChromium.cpp:
1572         (WebCore::DrawingBuffer::DrawingBuffer):
1573         * platform/graphics/skia/ImageBufferSkia.cpp:
1574         (WebCore::createAcceleratedCanvas):
1575
1576 2013-03-05  Anders Carlsson  <andersca@apple.com>
1577
1578         Split up the storage event dispatch functions further
1579         https://bugs.webkit.org/show_bug.cgi?id=111482
1580
1581         Reviewed by Beth Dakin.
1582
1583         Add new functions for dispatching storage events to a set of frames.
1584
1585         * storage/StorageAreaImpl.cpp:
1586         (WebCore::StorageAreaImpl::dispatchStorageEvent):
1587         * storage/StorageEventDispatcher.cpp:
1588         (WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
1589         (WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
1590         (WebCore):
1591         (WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
1592         (WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):
1593         * storage/StorageEventDispatcher.h:
1594         (WebCore):
1595         (StorageEventDispatcher):
1596
1597 2013-03-05  Stephen Chenney  <schenney@chromium.org>
1598
1599         Crash when ImageLoader deletes Element inside SVGImageElement
1600         https://bugs.webkit.org/show_bug.cgi?id=111085
1601
1602         Reviewed by Abhishek Arya.
1603
1604         Elements with ImageLoader objects associated with them may have their
1605         final reference held by the ImageLoader (to allow events to be sent
1606         and handled). Any call on Element that causes the ImageLoader to
1607         dispatch events might then result in the final deref of the Element
1608         itself, thus leaving all the Element's "this" pointers up the stack
1609         pointing to invalid memory.
1610
1611         This change puts the deref of the Element on a timer so that, if the
1612         deref is called via a method on Element, the call stack will unwind
1613         before the deref occurs.
1614
1615         Test: svg/custom/image-with-attr-change-after-delete-crash.html
1616
1617         * loader/ImageLoader.cpp:
1618         (WebCore::ImageLoader::ImageLoader): Initialize a timer
1619         (WebCore::ImageLoader::updatedHasPendingEvent): Put deref of the
1620           element on a oneShotTimer, with appropriate assertions and checks to
1621           ensure we only ref/deref once.
1622         (WebCore::ImageLoader::timerFired): Deref the element when the timer fires.
1623         * loader/ImageLoader.h:
1624         (ImageLoader): Define a timer for controlling deref of the element.
1625
1626 2013-03-05  Antoine Quint  <graouts@apple.com>
1627
1628         Web Inspector: identify reflection layers in LayerTreeAgent
1629         https://bugs.webkit.org/show_bug.cgi?id=111419
1630
1631         We add a new property "isReflection" to the Layer objects returned
1632         to the front-end to indicate whether the layer was created to host
1633         the reflection for an element. When this new property is true, the
1634         "nodeId" property is set to point to the reflected element's node
1635         id, since there is no node per-se directly associated with this layer.
1636         We also change the "bounds" property to return absolute page coordinates
1637         such that the front-end can use this information to highlight that
1638         region in the page since metrics would otherwise be unavailable.
1639
1640         Reviewed by Dean Jackson.
1641
1642         Test: inspector-protocol/layers/layers-reflected-content.html
1643
1644         * inspector/Inspector.json:
1645         * inspector/InspectorLayerTreeAgent.cpp:
1646         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
1647
1648 2013-03-05  peavo@outlook.com  <peavo@outlook.com>
1649
1650         [WinCairo] Compile fix after r144024.
1651         https://bugs.webkit.org/show_bug.cgi?id=111306
1652
1653         Reviewed by James Robinson.
1654
1655         * page/scrolling/ScrollingCoordinator.cpp: Added guard for USE(ACCELERATED_COMPOSITING).
1656         * page/scrolling/ScrollingCoordinator.h: Added guard for USE(ACCELERATED_COMPOSITING).
1657
1658 2013-03-05  James Weatherall  <wez@chromium.org>
1659
1660         keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
1661         https://bugs.webkit.org/show_bug.cgi?id=85642
1662
1663         Add missing key mappings for GDK_KP_Begin, GDK_KP_Insert, GDK_KP_Delete and GDK_ISO_Level3_Shift.
1664
1665         Reviewed by Ojan Vafai.
1666
1667         * platform/chromium/KeyCodeConversionGtk.cpp:
1668         (WebCore::windowsKeyCodeForKeyEvent):
1669
1670 2013-03-05  Alec Flett  <alecflett@chromium.org>
1671
1672         IndexedDB: Properly refactor frontend/backend code by #includes
1673         https://bugs.webkit.org/show_bug.cgi?id=110653
1674
1675         Reviewed by Dimitri Glazkov.
1676
1677         IndexedDB has a distinct backend and frontend, with well defined
1678         *Interface / *Callbacks classes distinguishing them, respectively.
1679         
1680         This makes sure that the frontend and backend do not include each
1681         other and fixes build problems that occurred as a result.
1682
1683         Specifically this moves enums out of IDBCursor and IDBTransaction
1684         into IndexedDB.h in a new WebCore::IndexedDB namespace.
1685
1686         No new tests, as this is just a refactor.
1687
1688 2013-03-05  Jeffrey Pfau  <jpfau@apple.com>
1689
1690         Clear associated cache partitions when deleting origins' cache
1691         https://bugs.webkit.org/show_bug.cgi?id=111383
1692
1693         Reviewed by Maciej Stachowiak.
1694
1695         Clear the cache partitions associated with the origin being cleared.
1696
1697         Not possible to test with current automated test tools, must be tested manually.
1698
1699         * loader/cache/MemoryCache.cpp:
1700         (WebCore::MemoryCache::removeResourcesWithOrigin):
1701
1702 2013-03-04  Ojan Vafai  <ojan@chromium.org>
1703
1704         Inline min/maxInstrinsicLogicalWidth functions
1705         https://bugs.webkit.org/show_bug.cgi?id=111399
1706
1707         Reviewed by Tony Chang.
1708
1709         Turns out these functions don't need to be public and only
1710         have one caller. This patch is in preparation for supporting
1711         intrinsic widths on tables, which will need to pass in the
1712         border and padding width as an argument.
1713
1714         * rendering/RenderBox.cpp:
1715         (WebCore::RenderBox::fillAvailableMeasure):
1716         (WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
1717         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
1718         * rendering/RenderBox.h:
1719
1720 2013-03-05  Victor Carbune  <vcarbune@chromium.org>
1721
1722         Cue line-height property shouldn't be inherited from the video element
1723         https://bugs.webkit.org/show_bug.cgi?id=111262
1724
1725         Reviewed by Eric Carlson.
1726
1727         Test: media/track/track-cue-rendering-on-resize.html
1728
1729         * css/mediaControls.css:
1730         (video::-webkit-media-text-track-container): Set the default font size
1731         and family using the "font" property to also reset the line-height property.
1732
1733 2013-03-05  Joshua Bell  <jsbell@chromium.org>
1734
1735         IndexedDB: Remove some unused binding code
1736         https://bugs.webkit.org/show_bug.cgi?id=111463
1737
1738         Reviewed by Adam Barth.
1739
1740         IDBRequest got a custom V8 getter for |request| to help diagnose an issue, but the
1741         root cause was found/fixed (http://wkbug.com/110916 and http://wkbug.com/110206) so
1742         remove it. Also, IDBKey was marked ScriptWrappable but it is now explicitly converted
1743         to a ScriptValue before it gets anywhere near the binding code, so remove that too.
1744         Finally, createIDBKeyFromValue doesn't need to be exposed from IDBBindingUtilities.
1745
1746         No new tests - just removing dead code.
1747
1748         * Modules/indexeddb/IDBKey.h: No need for ScriptWrappable.
1749         * Modules/indexeddb/IDBRequest.idl: Remove custom binding (root cause of bug found).
1750         * WebCore.gypi: Ditto.
1751         * bindings/js/IDBBindingUtilities.h: Don't expose internal createIDBKeyFromValue().
1752         * bindings/v8/IDBBindingUtilities.h: Ditto.
1753         * bindings/v8/custom/V8IDBRequestCustom.cpp: Removed.
1754
1755 2013-03-05  Sheriff Bot  <webkit.review.bot@gmail.com>
1756
1757         Unreviewed, rolling out r144798.
1758         http://trac.webkit.org/changeset/144798
1759         https://bugs.webkit.org/show_bug.cgi?id=111478
1760
1761         "broke chromium windows build" (Requested by dpranke on
1762         #webkit).
1763
1764         * GNUmakefile.list.am:
1765         * Modules/indexeddb/IDBBackingStore.cpp:
1766         (WebCore::IDBBackingStore::Cursor::continueFunction):
1767         (WebCore::objectStoreCursorOptions):
1768         (WebCore::indexCursorOptions):
1769         (WebCore::IDBBackingStore::openObjectStoreCursor):
1770         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
1771         (WebCore::IDBBackingStore::openIndexKeyCursor):
1772         (WebCore::IDBBackingStore::openIndexCursor):
1773         * Modules/indexeddb/IDBBackingStore.h:
1774         (IDBBackingStore):
1775         * Modules/indexeddb/IDBCursor.cpp:
1776         (WebCore::IDBCursor::create):
1777         (WebCore::IDBCursor::IDBCursor):
1778         (WebCore::IDBCursor::continueFunction):
1779         (WebCore::IDBCursor::stringToDirection):
1780         (WebCore::IDBCursor::directionToString):
1781         * Modules/indexeddb/IDBCursor.h:
1782         (IDBCursor):
1783         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
1784         (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
1785         (WebCore::IDBCursorBackendImpl::deleteFunction):
1786         (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
1787         * Modules/indexeddb/IDBCursorBackendImpl.h:
1788         (WebCore::IDBCursorBackendImpl::create):
1789         (WebCore::IDBCursorBackendImpl::value):
1790         (IDBCursorBackendImpl):
1791         * Modules/indexeddb/IDBCursorBackendInterface.h:
1792         (WebCore):
1793         * Modules/indexeddb/IDBCursorWithValue.cpp:
1794         (WebCore::IDBCursorWithValue::create):
1795         (WebCore::IDBCursorWithValue::IDBCursorWithValue):
1796         * Modules/indexeddb/IDBCursorWithValue.h:
1797         (IDBCursorWithValue):
1798         * Modules/indexeddb/IDBDatabase.cpp:
1799         (WebCore::IDBDatabase::transaction):
1800         * Modules/indexeddb/IDBDatabase.h:
1801         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1802         (WebCore::GetOperation::create):
1803         (WebCore::GetOperation::GetOperation):
1804         (GetOperation):
1805         (WebCore::OpenCursorOperation::create):
1806         (WebCore::OpenCursorOperation::OpenCursorOperation):
1807         (OpenCursorOperation):
1808         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
1809         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
1810         (WebCore::IDBDatabaseBackendImpl::createIndex):
1811         (WebCore::IDBDatabaseBackendImpl::deleteIndex):
1812         (WebCore::IDBDatabaseBackendImpl::get):
1813         (WebCore::GetOperation::perform):
1814         (WebCore::IDBDatabaseBackendImpl::put):
1815         (WebCore::PutOperation::perform):
1816         (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
1817         (WebCore::IDBDatabaseBackendImpl::openCursor):
1818         (WebCore::OpenCursorOperation::perform):
1819         (WebCore::CountOperation::perform):
1820         (WebCore::IDBDatabaseBackendImpl::deleteRange):
1821         (WebCore::DeleteRangeOperation::perform):
1822         (WebCore::IDBDatabaseBackendImpl::clear):
1823         (WebCore::IDBDatabaseBackendImpl::transactionStarted):
1824         (WebCore::IDBDatabaseBackendImpl::transactionFinished):
1825         (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
1826         (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndCompleteFired):
1827         (WebCore::IDBDatabaseBackendImpl::createTransaction):
1828         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
1829         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
1830         (IDBDatabaseBackendImpl):
1831         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
1832         * Modules/indexeddb/IDBFactory.h:
1833         * Modules/indexeddb/IDBIndex.cpp:
1834         (WebCore):
1835         (WebCore::IDBIndex::openCursor):
1836         (WebCore::IDBIndex::openKeyCursor):
1837         * Modules/indexeddb/IDBObjectStore.cpp:
1838         (WebCore):
1839         (WebCore::IDBObjectStore::openCursor):
1840         * Modules/indexeddb/IDBRequest.cpp:
1841         (WebCore::IDBRequest::IDBRequest):
1842         (WebCore::IDBRequest::setCursorDetails):
1843         (WebCore::IDBRequest::setResultCursor):
1844         (WebCore::IDBRequest::onSuccess):
1845         * Modules/indexeddb/IDBRequest.h:
1846         (IDBRequest):
1847         * Modules/indexeddb/IDBTransaction.cpp:
1848         (WebCore::IDBTransaction::create):
1849         (WebCore::IDBTransaction::IDBTransaction):
1850         (WebCore::IDBTransaction::stringToMode):
1851         (WebCore::IDBTransaction::modeToString):
1852         * Modules/indexeddb/IDBTransaction.h:
1853         (WebCore::IDBTransaction::isReadOnly):
1854         (WebCore::IDBTransaction::isVersionChange):
1855         (IDBTransaction):
1856         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
1857         (WebCore::IDBTransactionBackendImpl::create):
1858         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
1859         * Modules/indexeddb/IDBTransactionBackendImpl.h:
1860         (IDBTransactionBackendImpl):
1861         (WebCore::IDBTransactionBackendImpl::mode):
1862         * Modules/indexeddb/IDBTransactionCoordinator.cpp:
1863         (WebCore::IDBTransactionCoordinator::processStartedTransactions):
1864         (WebCore::IDBTransactionCoordinator::canRunTransaction):
1865         * Modules/indexeddb/IndexedDB.h: Removed.
1866         * Target.pri:
1867         * WebCore.gypi:
1868
1869 2013-03-05  Tommy Widenflycht  <tommyw@google.com>
1870
1871         MediaStream API: Allow local and remote descriptions to be accessed after close
1872         https://bugs.webkit.org/show_bug.cgi?id=111437
1873
1874         Reviewed by Adam Barth.
1875
1876         It's quite clear in the standard that the getters should still return the old value.
1877         Also overhauling the state setters a bit to check if the new state is different.
1878
1879         Existing tests expanded to cover patch.
1880
1881         * Modules/mediastream/RTCPeerConnection.cpp:
1882         (WebCore::RTCPeerConnection::localDescription):
1883         (WebCore::RTCPeerConnection::remoteDescription):
1884         (WebCore::RTCPeerConnection::changeSignalingState):
1885         (WebCore::RTCPeerConnection::changeIceGatheringState):
1886         (WebCore::RTCPeerConnection::changeIceConnectionState):
1887
1888 2013-03-05  Charlie Reis  <creis@chromium.org>
1889
1890         Add FrameLoaderClient::didAccessInitialDocument
1891         https://bugs.webkit.org/show_bug.cgi?id=107963
1892
1893         Notifies the FrameLoaderClient if another page accesses the
1894         initial empty document of a main frame.  In this case, it is
1895         no longer safe to display the provisional URL.
1896
1897         Only takes effect for PLATFORM(CHROMIUM), since no other platforms
1898         listen to the notification.
1899
1900         Reviewed by Adam Barth.
1901
1902         * bindings/v8/V8DOMWindowShell.cpp:
1903         (WebCore::V8DOMWindowShell::setSecurityToken):
1904             Use default token for initial document.
1905         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1906             Notify loader if initial document is accessed.
1907         (WebCore::V8DOMWindow::namedSecurityCheck):
1908         (WebCore::V8DOMWindow::indexedSecurityCheck):
1909         * loader/FrameLoader.cpp:
1910         (WebCore::FrameLoader::FrameLoader):
1911         (WebCore::FrameLoader::didAccessInitialDocument):
1912         (WebCore):
1913         * loader/FrameLoader.h:
1914         (FrameLoader):
1915         * loader/FrameLoaderClient.h:
1916         (FrameLoaderClient):
1917         (WebCore::FrameLoaderClient::didAccessInitialDocument):
1918
1919 2013-03-05  Otto Derek Cheung  <otcheung@rim.com>
1920
1921         [BlackBerry] Fix assertion in CookieManager::getBackingStoreCookies
1922         https://bugs.webkit.org/show_bug.cgi?id=111468
1923
1924         Reviewed by Rob Buis.
1925         Internally reviewed by Konrad Piascik.
1926
1927         The assert in getBackingStoreCookies could be giving out false positives now
1928         that we have our fixes for cookie loading in PR 286189. The cookie store could
1929         be half loaded if the first cookie get/set call happens before the db is fully loaded.
1930         A full webkit sync call to reload the database will cause the assert to be hit.
1931
1932         Safer to flush everything out and try again.
1933
1934         * platform/blackberry/CookieManager.cpp:
1935         (WebCore::CookieManager::getBackingStoreCookies):
1936
1937 2013-03-05  Tony Gentilcore  <tonyg@chromium.org>
1938
1939         CompactHTMLToken does not need an XSSInfo pointer
1940         https://bugs.webkit.org/show_bug.cgi?id=111423
1941
1942         Reviewed by Eric Seidel.
1943
1944         The CompactHTMLToken should remain as small as possible because it is copied. This shrinks the size by one pointer
1945         by moving a relatively uncommon attribute out to its own Vector.
1946
1947         No new tests because no new functionality.
1948
1949         * html/parser/BackgroundHTMLParser.cpp:
1950         (WebCore::checkThatXSSInfosAreSafeToSendToAnotherThread):
1951         (WebCore):
1952         (WebCore::BackgroundHTMLParser::pumpTokenizer):
1953         (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
1954         * html/parser/BackgroundHTMLParser.h:
1955         (BackgroundHTMLParser):
1956         * html/parser/CompactHTMLToken.cpp:
1957         (SameSizeAsCompactHTMLToken):
1958         (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
1959         * html/parser/CompactHTMLToken.h:
1960         (WebCore):
1961         (CompactHTMLToken):
1962         * html/parser/HTMLDocumentParser.cpp:
1963         (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
1964         * html/parser/HTMLDocumentParser.h:
1965         (ParsedChunk):
1966         * html/parser/XSSAuditorDelegate.h:
1967         (XSSInfo):
1968         (WebCore):
1969
1970 2013-03-05  Anders Carlsson  <andersca@apple.com>
1971
1972         Split StorageEventDispatcher::dispatch into two functions
1973         https://bugs.webkit.org/show_bug.cgi?id=111464
1974
1975         Reviewed by Beth Dakin.
1976
1977         Split StorageEventDispatcher::dispatch into dispatchSessionStorageEvent and
1978         dispatchLocalStorageEvent and make StorageAreaImpl::dispatchStorageEvent call
1979         the right function based on the storage area type.
1980
1981         * storage/StorageAreaImpl.cpp:
1982         (WebCore::StorageAreaImpl::dispatchStorageEvent):
1983         * storage/StorageEventDispatcher.cpp:
1984         (WebCore::StorageEventDispatcher::dispatchSessionStorageEvent):
1985         (WebCore):
1986         (WebCore::StorageEventDispatcher::dispatchLocalStorageEvent):
1987         * storage/StorageEventDispatcher.h:
1988         (StorageEventDispatcher):
1989
1990 2013-03-05  Brent Fulgham  <bfulgham@webkit.org>
1991
1992         [WinCairo] Unreviewed build fix after r144024.
1993
1994         * page/scrolling/ScrollingCoordinator.cpp:
1995         (WebCore::ScrollingCoordinator::scrollLayerForScrollableArea): Handle
1996         case of not using Accelerated Compositing
1997         (WebCore::ScrollingCoordinator::horizontalScrollbarLayerForScrollableArea):
1998         (WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea): Ditto.
1999
2000 2013-03-05  Alec Flett  <alecflett@chromium.org>
2001
2002         IndexedDB: Properly refactor frontend/backend code by #includes
2003         https://bugs.webkit.org/show_bug.cgi?id=110653
2004
2005         Reviewed by Dimitri Glazkov.
2006
2007         IndexedDB has a distinct backend and frontend, with well defined
2008         *Interface / *Callbacks classes distinguishing them, respectively.
2009         
2010         This makes sure that the frontend and backend do not include each
2011         other and fixes build problems that occurred as a result.
2012
2013         Specifically this moves enums out of IDBCursor and IDBTransaction
2014         into IndexedDB.h in a new WebCore::IndexedDB namespace.
2015
2016         No new tests, as this is just a refactor.
2017
2018 2013-03-05  James Robinson  <jamesr@chromium.org>
2019
2020         ContainerNode::setActive should not sleep for 100ms on platforms that do not implement synchronous repaint(true) semantics
2021         https://bugs.webkit.org/show_bug.cgi?id=87054
2022
2023         Reviewed by Darin Adler.
2024
2025         Adds a new ChromeClient function to query if the platform supports the immediate parameter
2026         to the invalidation APIs and guards the synchronous repaint logic in ContainerNode::setActive()
2027         with it.
2028
2029         * dom/ContainerNode.cpp:
2030         (WebCore::ContainerNode::setActive):
2031         * page/ChromeClient.h:
2032         (WebCore::ChromeClient::supportsImmediateInvalidation):
2033
2034 2013-03-05  Anders Carlsson  <andersca@apple.com>
2035
2036         Simplify storage event dispatch somewhat
2037         https://bugs.webkit.org/show_bug.cgi?id=111461
2038
2039         Reviewed by Beth Dakin.
2040
2041         Add a StorageAreaImpl::dispatchStorageEvent to avoid replicating the calls to
2042         StorageEventDispatcher::dispatch there times. This is in preparation for changing the
2043         interface of StorageEventDispatcher so it can be used by WebKit2.
2044
2045         * storage/StorageAreaImpl.cpp:
2046         (WebCore::StorageAreaImpl::setItem):
2047         (WebCore::StorageAreaImpl::removeItem):
2048         (WebCore::StorageAreaImpl::clear):
2049         (WebCore::StorageAreaImpl::dispatchStorageEvent):
2050
2051         * storage/StorageAreaImpl.h:
2052         Reindent.
2053
2054 2013-03-05  Tony Chang  <tony@chromium.org>
2055
2056         Fix some crashes in render sliders
2057         https://bugs.webkit.org/show_bug.cgi?id=111458
2058
2059         Reviewed by Ojan Vafai.
2060
2061         Fix some cases where we assumed the renderer is a renderBox.
2062
2063         Test: fast/forms/range/slider-inline-crash.html
2064
2065         * html/shadow/SliderThumbElement.cpp:
2066         (WebCore::RenderSliderContainer::layout): Use renderBox() which will return 0 if the renderer is not a RenderBox.
2067         (WebCore::SliderThumbElement::setPositionFromPoint): Bail out early if renderBox() is 0.
2068
2069 2013-03-04  Andrew Scherkus  <scherkus@chromium.org>
2070
2071         REGRESSION(r142191): Fix closed caption buttons for ports still using the painting path.
2072         https://bugs.webkit.org/show_bug.cgi?id=111109
2073
2074         Reviewed by Eric Carlson.
2075
2076         Covered by following tests:
2077         media/track/track-cue-rendering-horizontal.html
2078         media/track/track-cue-rendering-vertical.html
2079
2080         * rendering/RenderTheme.cpp:
2081         (WebCore::RenderTheme::paint):
2082         * rendering/RenderTheme.h:
2083         (WebCore::RenderTheme::paintMediaToggleClosedCaptionsButton):
2084
2085 2013-03-05  Gwang Yoon Hwang  <ryumiel@company100.net>
2086
2087         Coordinated Graphics: CoordinatedGraphicsLayer makes CoordinatedGraphicsScene perform via CoordinatedGraphicsState.
2088         https://bugs.webkit.org/show_bug.cgi?id=108294
2089
2090         Reviewed by Anders Carlsson.
2091
2092         CoordinatedLayerTreeHostProxy has too many IPC messages (e.g. SyncCanvas and
2093         CreateTile), and there is a long function chain from CoordinatedGraphicsLayer to
2094         CoordinatedGraphicsScene (4 classes).
2095         If we want to add a new message, we need to add similar functions into 4 classes.
2096
2097         Now CoordinatedLayerTreeHost has only one IPC message for CoordinatedGraphicsLayer:
2098         CommitCoordinatedGraphicsState.
2099         CoordinatedGraphicsLayer makes CoordinatedGraphicsScene run as follows:
2100         1. CoordinatedGraphicsLayer makes a CoordinatedGraphicsLayerState.
2101         2. CoordinatedLayerTreeHost stores all LayerStates.
2102         3. CoordinatedLayerTreeHost sends GraphicsState includes LayerStates to CoordinatedLayerTreeHostProxy
2103         at the moment of flushing via CommitCoordinatedGraphicsState message.
2104         4. CoordinatedGraphicsScene applies all state changes to layers.
2105
2106         There is one big behavior change. All states changes (e.g.
2107         UpdateTiles, SetLayerChildren, and etc..) are performed at the same time, when
2108         CoordinatedGraphicsScene::commitCoordinatedGraphicsState is called.
2109
2110         This patch is based on Dongsung Huang, and Noam's work in
2111         https://bugs.webkit.org/show_bug.cgi?id=108294
2112
2113         No new tests, covered by existing tests.
2114
2115         * Target.pri:
2116         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
2117         (WebCore::CoordinatedGraphicsLayer::setPosition):
2118         (WebCore::CoordinatedGraphicsLayer::setAnchorPoint):
2119         (WebCore::CoordinatedGraphicsLayer::setSize):
2120         (WebCore::CoordinatedGraphicsLayer::setTransform):
2121         (WebCore::CoordinatedGraphicsLayer::setChildrenTransform):
2122         (WebCore::CoordinatedGraphicsLayer::setPreserves3D):
2123         (WebCore::CoordinatedGraphicsLayer::setMasksToBounds):
2124         (WebCore::CoordinatedGraphicsLayer::setDrawsContent):
2125         (WebCore::CoordinatedGraphicsLayer::setContentsVisible):
2126         (WebCore::CoordinatedGraphicsLayer::setContentsOpaque):
2127         (WebCore::CoordinatedGraphicsLayer::setBackfaceVisibility):
2128         (WebCore::CoordinatedGraphicsLayer::setOpacity):
2129         (WebCore::CoordinatedGraphicsLayer::setContentsRect):
2130         (WebCore::CoordinatedGraphicsLayer::setFilters):
2131         (WebCore::CoordinatedGraphicsLayer::setContentsToSolidColor):
2132         (WebCore::CoordinatedGraphicsLayer::setShowDebugBorder):
2133         (WebCore::CoordinatedGraphicsLayer::setShowRepaintCounter):
2134         (WebCore::CoordinatedGraphicsLayer::setMaskLayer):
2135         (WebCore::CoordinatedGraphicsLayer::setReplicatedByLayer):
2136         (WebCore::CoordinatedGraphicsLayer::setFixedToViewport):
2137         (WebCore::CoordinatedGraphicsLayer::syncChildren):
2138         (WebCore::CoordinatedGraphicsLayer::syncFilters):
2139         (WebCore::CoordinatedGraphicsLayer::syncImageBacking):
2140         (WebCore::CoordinatedGraphicsLayer::syncLayerState):
2141         (WebCore::CoordinatedGraphicsLayer::setDebugBorder):
2142         (WebCore::CoordinatedGraphicsLayer::syncAnimations):
2143         (WebCore::CoordinatedGraphicsLayer::syncCanvas):
2144         (WebCore::CoordinatedGraphicsLayer::destroyCanvasIfNeeded):
2145         (WebCore::CoordinatedGraphicsLayer::createCanvasIfNeeded):
2146         (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
2147         (WebCore::CoordinatedGraphicsLayer::resetLayerState):
2148         (WebCore):
2149         (WebCore::CoordinatedGraphicsLayer::releaseImageBackingIfNeeded):
2150         (WebCore::CoordinatedGraphicsLayer::setRootLayer):
2151         (WebCore::CoordinatedGraphicsLayer::tiledBackingStorePaintEnd):
2152         (WebCore::CoordinatedGraphicsLayer::createTile):
2153         (WebCore::CoordinatedGraphicsLayer::updateTile):
2154         (WebCore::CoordinatedGraphicsLayer::removeTile):
2155         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
2156         (CoordinatedGraphicsLayerClient):
2157         (CoordinatedGraphicsLayer):
2158         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
2159         (WebCore::CoordinatedGraphicsScene::createCanvasIfNeeded):
2160         (WebCore::CoordinatedGraphicsScene::syncCanvasIfNeeded):
2161         (WebCore::CoordinatedGraphicsScene::destroyCanvasIfNeeded):
2162         (WebCore::CoordinatedGraphicsScene::setLayerRepaintCountIfNeeded):
2163         (WebCore::CoordinatedGraphicsScene::setLayerChildrenIfNeeded):
2164         (WebCore::CoordinatedGraphicsScene::setLayerFiltersIfNeeded):
2165         (WebCore::CoordinatedGraphicsScene::setLayerState):
2166         (WebCore::CoordinatedGraphicsScene::deleteLayer):
2167         (WebCore::CoordinatedGraphicsScene::createTilesIfNeeded):
2168         (WebCore::CoordinatedGraphicsScene::removeTilesIfNeeded):
2169         (WebCore::CoordinatedGraphicsScene::updateTilesIfNeeded):
2170         (WebCore::CoordinatedGraphicsScene::assignImageBackingToLayer):
2171         (WebCore::CoordinatedGraphicsScene::commitSceneState):
2172         (WebCore::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded):
2173         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
2174         (WebCore):
2175         (CoordinatedGraphicsScene):
2176         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h: Added.
2177         (WebCore):
2178         (TileUpdateInfo):
2179         (TileCreationInfo):
2180         (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
2181         (CoordinatedGraphicsLayerState):
2182         (CoordinatedGraphicsState):
2183         * platform/graphics/texmap/coordinated/CoordinatedImageBacking.h:
2184         * platform/graphics/texmap/coordinated/CoordinatedLayerInfo.h: Removed.
2185         * platform/graphics/texmap/coordinated/SurfaceUpdateInfo.h:
2186
2187 2013-03-05  Roger Fong  <roger_fong@apple.com>
2188
2189         Unreviewed. AppleWin VS2010 build fix.
2190
2191         * WebCore.vcxproj/WebCore.vcxproj:
2192         * WebCore.vcxproj/WebCore.vcxproj.filters:
2193         * rendering/RenderingAllInOne.cpp:
2194
2195 2013-03-05  Bem Jones-Bey  <bjonesbe@adobe.com>
2196
2197         [CSS Exclusions] shape-outside on floats for polygon shapes
2198         https://bugs.webkit.org/show_bug.cgi?id=98676
2199
2200         Reviewed by David Hyatt.
2201
2202         Implement support for polygonal shape-outside on floats. The basic
2203         tack taken here is to keep using the bounding box of the shape to
2204         position the float, but to compute the offset (caused by the shape)
2205         from the bounding box for each line when creating and positioning
2206         other inline content.
2207
2208         Test: fast/exclusions/shape-outside-floats/shape-outside-floats-simple-polygon.html
2209
2210         * rendering/ExclusionShapeInfo.cpp:
2211         (WebCore):
2212         (WebCore::::computedShape): Add new template parameter.
2213         (WebCore::::logicalTopOffset): Add new template parameter.
2214         (WebCore::::computeSegmentsForLine): Move here from
2215             ExclusionShapeInsideInfo, since ExclusionShapeOutsideInfo needs it
2216             as well. Make virtual since there is slightly different behavior
2217             between each class even though the vast majority of the code is
2218             common.
2219         * rendering/ExclusionShapeInfo.h:
2220         (WebCore):
2221         (WebCore::ExclusionShapeInfo::~ExclusionShapeInfo): Since
2222             computeSegmentsForLine is virtual, the destructor must be virtual
2223             as well.
2224         (ExclusionShapeInfo): Add new data members to support
2225             computeSegmentsForLine.
2226         (WebCore::ExclusionShapeInfo::shapeLogicalRight): Fix bug, the logical
2227             right is based off of maxX, not y. (it's a logical bounding box!)
2228         (WebCore::ExclusionShapeInfo::logicalLineTop): Moved from
2229             ExclusionShapeInsideInfo for use by computeSegmentsForLine and
2230             lineOverlapsShapeBounds.
2231         (WebCore::ExclusionShapeInfo::logicalLineBottom): Moved from
2232             ExclusionShapeInsideInfo for use by computeSegmentsForLine and
2233             lineOverlapsShapeBounds.
2234         (WebCore::ExclusionShapeInfo::lineOverlapsShapeBounds): Moved from
2235             ExclusionShapeInsideInfo for use by computeSegmentsForLine.
2236         * rendering/ExclusionShapeInsideInfo.cpp: Moved common code from
2237             computeSegmentsForLine into ExclusionShapeInfo.
2238         * rendering/ExclusionShapeInsideInfo.h:
2239         (WebCore): Moved some methods to ExclusionShapeInfo.
2240         (ExclusionShapeInsideInfo): Update for new template parameter.
2241         (WebCore::ExclusionShapeInsideInfo::compyteSegmentsForLine): Override
2242             superclass method to clear the segment ranges. Segement ranges
2243             aren't used by shape outside, and have some complex dependencies
2244             that make it very hard to try and move up into ExclusionShapeInfo.
2245         (WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo): Update
2246             for new template parameter.
2247         * rendering/ExclusionShapeOutsideInfo.cpp:
2248         (WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Add polygons as a
2249             supported shape.
2250         (WebCore::ExclusionShapeOutsideInfo::computeSegmentsForLine): Override
2251             superclass method to not recompute if it isn't needed (this isn't
2252             straightfoward for shape inside, which is why it isn't common),
2253             and to save the left and right offsets caused by the shape
2254             outside, since that's all that is needed to properly do layout in
2255             the case of floats.
2256         * rendering/ExclusionShapeOutsideInfo.h:
2257         (WebCore::ExclusionShapeOutsideInfo::shapeLogicalOffset): Reformat to
2258             be on a single line, like most other methods of it's type in
2259             WebKit headers.
2260         (ExclusionShapeOutsideInfo): Update for new template parameter.
2261         (WebCore::ExclusionShapeOutsideInfo::logicalLeftOffsetForLine):
2262             Accessor method to get the left offset between the shape and the
2263             shape's bounding box.
2264         (WebCore::ExclusionShapeOutsideInfo::logicalRightOffsetForLine):
2265             Accessor method to get the left offset between the shape and the
2266             shape's bounding box.
2267         (WebCore::ExclusionShapeOutsideInfo::ExclusionShapeOutsideInfo):
2268             Update for new template parameter.
2269         * rendering/RenderBlock.cpp:
2270         (WebCore::::collectIfNeeded): Save the last float encountered so that
2271             the shape outside offset can be accounted for.
2272         (WebCore::RenderBlock::logicalLeftOffsetForLine): Account for the
2273             shape outside offset on the outermost float.
2274         (WebCore::RenderBlock::logicalRightOffsetForLine): Account for the
2275             shape outside offset on the outermost float.
2276         * rendering/RenderBlock.h:
2277         (WebCore::RenderBlock::FloatIntervalSearchAdapter::FloatIntervalSearchAdapter):
2278             Initialize the lastFloat member.
2279         (WebCore::RenderBlock::FloatIntervalSearchAdapter::lastFloat): Get the
2280             last float encountered.
2281         (FloatIntervalSearchAdapter): Add a pointer to the last float
2282             encountered. Note that the variable is mutable because
2283             collectIfNeeded is declared as a const method even though it isn't
2284             (it uses loopholes to update m_offset and m_heightRemaining).
2285             Instead of trying to come up with a hack to stick with the
2286             loopholes, I decided to be explicit about it.
2287         * rendering/RenderBlockLineLayout.cpp:
2288         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Take
2289             into account the offset from any polygonal shape outside.
2290         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Add a FIXME
2291             because the current code will not work properly with stacked
2292             floats that have polygonal shape outside.
2293
2294 2013-03-04  David Hyatt  <hyatt@apple.com>
2295
2296         [New Multicolumn] Autogenerate regions for columns.
2297         https://bugs.webkit.org/show_bug.cgi?id=111363
2298
2299         Reviewed by Dean Jackson.
2300
2301         In CSS Regions, we lay out the regions first, and then
2302         we put the flow thread into the regions. This model doesn't
2303         really work for multicolumn layout, which needs to be able
2304         to auto-generate new regions lazily in response to the flow
2305         thread asking for regions at particular offsets.
2306
2307         With the multi-column model, where the regions can't just occur
2308         anywhere, its ok not to lay them out before the flow thread, as
2309         long as we have at least given them the correct size.
2310         
2311         This patch changes the layout algorithm for columns to:
2312         (1) Size any existing regions (without worrying about placement).
2313         (2) Lay out the flow thread (generating and sizing regions lazily
2314         that need to be created).
2315         (3) Lay out the regions (to give them correct placement and to
2316         compute overflow correctly for the multi-column block that contains
2317         the regions).
2318
2319         There are no new tests, since there are no behavioral changes. This
2320         is just groundwork for being able to add new sets in response to
2321         spans, balancing, and nested pagination contexts.
2322
2323         * rendering/RenderBlock.cpp:
2324         (WebCore::RenderBlock::determineLogicalLeftPositionForChild):
2325         (WebCore::RenderBlock::layoutBlockChild):
2326         * rendering/RenderBlock.h:
2327         (RenderBlock):
2328         Since we want to be able to call determineLogicalLeftPositionForChild
2329         to place the flow thread properly, and we don't want to apply a layout
2330         delta (flow threads repaint themselves), we parameterize the method
2331         here so that it can be called without applying a layout delta.
2332         
2333         * rendering/RenderFlowThread.cpp:
2334         (WebCore::RenderFlowThread::addRegionToThread):
2335         (WebCore::RenderFlowThread::removeRegionFromThread):
2336         These methods are only used by RenderMultiColumnFlowThread, since
2337         RenderNamedFlowThread overrides them. Remove the code that invalidates
2338         the flow threads region set as regions come and go, since that is now
2339         going to be expected with auto-generation.
2340
2341         (WebCore::RenderFlowThread::validateRegions):
2342         Refactor the code in RenderFlowThread::layout that validates the regions
2343         into its own method, so that we can re-validate regions at any time
2344         after generating new ones.
2345         
2346         (WebCore::RenderFlowThread::layout):
2347         Changed to move the region validation code into its own function that is
2348         now called from here.
2349
2350         (WebCore::RenderFlowThread::updateLogicalWidth):
2351         Don't assert if a region set needs layout.
2352
2353         (WebCore::RenderFlowThread::computeLogicalHeight):
2354         Ditto. Don't assert if a region set needs layout. That's expected now.
2355
2356         (WebCore::RenderFlowThread::regionAtBlockOffset):
2357         Add code to regionAtBlockOffset to auto-generate regions up to
2358         the offset. This ensures the region that is being asked for
2359         exists.
2360
2361         (WebCore::RenderFlowThread::pageLogicalTopForOffset):
2362         (WebCore::RenderFlowThread::pageLogicalWidthForOffset):
2363         (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
2364         (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
2365         These functions are no longer const, since the act of asking for
2366         pagination offsets can cause us to generate new regions.
2367
2368         (WebCore::RenderFlowThread::mapFromFlowToRegion):
2369         Modified to turn auto-generation off, since this is not really
2370         a "layout-time" function.
2371
2372         (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
2373         Modified to not assert if a region set needs layout, since that is
2374         expected now.
2375
2376         * rendering/RenderFlowThread.h:
2377         Changes to remove const from the methods that can trigger region
2378         auto-generation.
2379
2380         * rendering/RenderMultiColumnBlock.cpp:
2381         (WebCore::RenderMultiColumnBlock::styleDidChange):
2382         Make sure to propagate style changes down into the regions. I don't know
2383         of any correctness bugs around this, but I figured I'd be thorough.
2384
2385         (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
2386         We no longer build a column set aggressively. We wait for the flow thread
2387         to ask us for a region at a particular offset, and only then do we
2388         build the set.
2389         
2390         (WebCore::RenderMultiColumnBlock::addChild):
2391         Now that we lay out the flow thread as a special excluded child, we don't
2392         care about the ordering of it relative to the region children.
2393
2394         (WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
2395         We now lay out the flow thread as a special excluded child (like the legend
2396         of a fieldset).
2397
2398         * rendering/RenderMultiColumnBlock.h:
2399         (RenderMultiColumnBlock):
2400         Add new overrides like layoutSpecialExcludedChild.
2401         
2402         * rendering/RenderMultiColumnFlowThread.cpp:
2403         (WebCore::RenderMultiColumnFlowThread::initialLogicalWidth):
2404         Set the flow thread to the initial column width even when no regions exist
2405         yet. This way we ensure the width is right even when we don't have any
2406         regions yet.
2407
2408         (WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
2409         This method handles autogenerating the new region for a given offset.
2410         Right now it's simplistic, since we only have one column set. This method
2411         will be enhanced in future patches when we start supporting multiple column
2412         sets.
2413
2414         * rendering/RenderMultiColumnFlowThread.h:
2415         (RenderMultiColumnFlowThread):
2416         Adding new method declarations like autoGenerateRegionsToBlockOffset.
2417
2418         * rendering/RenderMultiColumnSet.cpp:
2419         (WebCore::RenderMultiColumnSet::updateLogicalWidth):
2420         Since regions lay out after flow threads, we don't need to make 
2421         setFlowThreadPortionRect virtual any longer. We can just get our column set's
2422         width correct immediately. This is the same logic, just moved into updateLogicalWidth().
2423
2424         * rendering/RenderMultiColumnSet.h:
2425         Remove setFlowThreadPortionRect override, since the function can just be simple
2426         and non-virtual in RenderRegion now.
2427
2428         * rendering/RenderRegion.cpp:
2429         (WebCore::RenderRegion::layoutBlock):
2430         Don't ever invalidate region sets in response to our size changing during layout. Since
2431         our size is always determined outside of layout now, we don't need to do any of
2432         these checks.
2433
2434         * rendering/RenderRegion.h:
2435         (WebCore::RenderRegion::setFlowThreadPortionRect):
2436         Changed to be non-virtual now that RenderMultiColumnSet doesn't need to override.
2437
2438 2013-03-04  Alexey Proskuryakov  <ap@apple.com>
2439
2440         Make AsyncFileReader work without ScriptExecutionContext
2441         https://bugs.webkit.org/show_bug.cgi?id=111376
2442
2443         Reviewed by Anders Carlsson.
2444
2445         * WebCore.xcodeproj/project.pbxproj: Added MainThreadTask.h.
2446
2447         * dom/ScriptExecutionContext.cpp:
2448         * dom/ScriptExecutionContext.h:
2449         Removed fileThread(). Creating a thread for every context that acesses files appears
2450         wasteful and unnecessary.
2451
2452         * fileapi/AsyncFileStream.h:
2453         * fileapi/AsyncFileStream.cpp:
2454         (WebCore::createFileThread): FileThread is now a singleton.
2455         (WebCore::fileThread): Ditto.
2456         (WebCore::AsyncFileStream::AsyncFileStream):
2457         (WebCore::AsyncFileStream::create):
2458         (WebCore::didStart):
2459         (WebCore::AsyncFileStream::startOnFileThread):
2460         (WebCore::AsyncFileStream::stop):
2461         (WebCore::derefProxyOnMainThread):
2462         (WebCore::AsyncFileStream::stopOnFileThread):
2463         (WebCore::didGetSize):
2464         (WebCore::AsyncFileStream::getSizeOnFileThread):
2465         (WebCore::didOpen):
2466         (WebCore::AsyncFileStream::openForReadOnFileThread):
2467         (WebCore::AsyncFileStream::openForWriteOnFileThread):
2468         (WebCore::didRead):
2469         (WebCore::AsyncFileStream::readOnFileThread):
2470         (WebCore::didWrite):
2471         (WebCore::AsyncFileStream::writeOnFileThread):
2472         (WebCore::didTruncate):
2473         (WebCore::AsyncFileStream::truncateOnFileThread):
2474         Use callOnMainThread() instead of posting messages through a context. We never used
2475         other threads, and don't plan to.
2476
2477         * loader/ResourceLoader.cpp:
2478         * loader/ResourceLoader.h:
2479         We no longer need this pseudo-client call to create an AsyncFileStream, now that
2480         we don't need to get a ScriptExecutionContext somewhere.
2481
2482         * platform/MainThreadTask.h: Added. This implements callOnMainThread with multiple
2483         strongly typed arguments. Closely based on CrossThreadTask.h.
2484
2485         * platform/network/BlobResourceHandle.cpp:
2486         (WebCore::BlobResourceHandle::BlobResourceHandle): Create AsyncFileStream directly.
2487
2488         * platform/network/ResourceHandleClient.h: Removed createAsyncFileStream().
2489
2490 2013-03-05  Jessie Berlin  <jberlin@apple.com>
2491
2492         Update the localizable strings file.
2493
2494         Rubber-stamped by Anders Carlsson.
2495
2496         * English.lproj/Localizable.strings:
2497
2498 2013-03-05  Chris Fleizach  <cfleizach@apple.com>
2499
2500         AX: aria-label does not override text content on iOS
2501         https://bugs.webkit.org/show_bug.cgi?id=111222
2502
2503         Reviewed by David Kilzer.
2504
2505         Make iOS use the same text alternative computation that Mac is using. The main difference
2506         is that description and title need to be concatenated, because iOS doesn't have two attributes
2507         to return those values.
2508
2509         Test: platform/iphone-simulator/accessibility/aria-label-with-internal-text.html
2510
2511         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
2512         (-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
2513         (-[WebAccessibilityObjectWrapper accessibilityLabel]):
2514         (-[WebAccessibilityObjectWrapper accessibilityHint]):
2515         * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
2516
2517 2013-03-05  David Kilzer  <ddkilzer@apple.com>
2518
2519         BUILD FIX (r144698): Only enable SPEECH_SYNTHESIS for Mac
2520         <http://webkit.org/b/106742>
2521
2522         Fixes the following build failures:
2523
2524             Undefined symbols for architecture i386:
2525               "__ZTVN7WebCore25PlatformSpeechSynthesizerE", referenced from:
2526                   __ZN7WebCore25PlatformSpeechSynthesizerC2EPNS_31PlatformSpeechSynthesizerClientE in PlatformSpeechSynthesizer.o
2527               NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
2528               "__ZN7WebCore25PlatformSpeechSynthesizer19initializeVoiceListEv", referenced from:
2529                   __ZN7WebCore25PlatformSpeechSynthesizerC2EPNS_31PlatformSpeechSynthesizerClientE in PlatformSpeechSynthesizer.o
2530             ld: symbol(s) not found for architecture i386
2531
2532         * Configurations/FeatureDefines.xcconfig:
2533         - Only set ENABLE_SPEECH_SYNTHESIS for the macosx platform.
2534
2535 2013-03-05  Dmitry Zvorygin  <zvorygin@chromium.org>
2536
2537         Web Inspector: registered new MIME type application/font-woff for WOFF fonts.
2538         https://bugs.webkit.org/show_bug.cgi?id=111418
2539
2540         The WOFF MIME Type was formally registered as application/font-woff (FINALLY):
2541         http://www.iana.org/assignments/media-types/application/font-woff
2542
2543         Reviewed by Pavel Feldman.
2544
2545         * inspector/front-end/NetworkManager.js:
2546         (WebInspector.NetworkManager):
2547         (WebInspector.NetworkDispatcher.prototype._updateNetworkRequestWithResponse):
2548
2549 2013-03-05  Julien Chaffraix  <jchaffraix@webkit.org>
2550
2551         [CSS Grid Layout] Add parsing for grid-{end|after}
2552         https://bugs.webkit.org/show_bug.cgi?id=111372
2553
2554         Reviewed by Tony Chang.
2555
2556         Test: fast/css-grid-layout/grid-item-end-after-get-set.html
2557
2558         This change adds the proper support for grid-{end|after}. It doesn't update
2559         grid-{row|column} to be a shorthand for both grid-{before|start} and grid-{after|end}
2560         though.
2561
2562         * css/CSSComputedStyleDeclaration.cpp:
2563         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2564         Added the new properties to our known properties. Also added
2565         support for getComputedStyle.
2566
2567         * css/CSSParser.cpp:
2568         (WebCore::CSSParser::parseValue):
2569         Added parsing for the new properties.
2570
2571         * css/CSSProperty.cpp:
2572         (WebCore::CSSProperty::isInheritedProperty):
2573         The new properties are not inherited.
2574
2575         * css/CSSPropertyNames.in:
2576         Added the new properties.
2577
2578         * css/StyleResolver.cpp:
2579         (WebCore::StyleResolver::applyProperty):
2580         Added code to handle applying them to our style.
2581
2582         * rendering/style/RenderStyle.h:
2583         * rendering/style/StyleGridItemData.cpp:
2584         (WebCore::StyleGridItemData::StyleGridItemData):
2585         * rendering/style/StyleGridItemData.h:
2586         (WebCore::StyleGridItemData::operator==):
2587         (StyleGridItemData):
2588         Updated our representation to store the new properties.
2589
2590 2013-03-05  Andrey Kosyakov  <caseq@chromium.org>
2591
2592         Unreviewed follow-up to r144756, fix broken inspector-less build.
2593
2594         * inspector/InspectorInstrumentation.h:
2595         (WebCore::InspectorInstrumentation::willWriteHTML):
2596
2597 2013-03-05  Mark Lam  <mark.lam@apple.com>
2598
2599         Improve robustness of WebSQL quota management.
2600         https://bugs.webkit.org/show_bug.cgi?id=110600.
2601
2602         Reviewed by Geoffrey Garen.
2603
2604         1. Introduced the OriginLock for synchronizing write access to the
2605            database origin directory. This allows us to more accurately
2606            compute the disk usage.
2607
2608            The OriginLock uses a mutex to provide mutual exclusion between
2609            threads and a file lock for mutual exclusion between processes.
2610            The file lock part is conditional on USE(FILE_LOCK).
2611
2612            The mutex mutual exclusion also serves to ensure that only 1 thread
2613            can write to a sqlite database at one time.
2614
2615         2. Change the SQLTransactionCoordinator to only allow one write
2616            transaction to an origin instead of one write transaction per
2617            database. This is needed in order to accurately compute the
2618            disk usage. It is also necessary so that the OriginLock does not
2619            deadlock itself (as would be the case if concurrent write transactions
2620            to different databases in the same origin are allowed).
2621
2622         3. Fix DatabaseTracker::getMaxSizeForDatabase() to check for when
2623            disk usage may exceed the quota, and ensure that we will return
2624            an appropriate max database size.
2625
2626            Disk usage can exceed the usage if it is already near the quota limit
2627            but have not exceeded it yet. If a new database is opened in that
2628            origin, it may bump the usage above the quota, but should not
2629            continually repeat this. Subsequent attempts to open a database
2630            will find that the quota is already exhausted and fail.
2631
2632            There is still a race condition pertaining to the tracker database
2633            getting out of sync that may still enable runaway growth in the
2634            database sizes. That issue only manifest in a multi-process
2635            environment, and will be fixed in another changeset.
2636
2637         4. Fixed a bug in SQLStatement to check if the errorCallback exists
2638            before invoking it.
2639
2640         No new layout tests. A quota-test.html was attached to bugzilla for manual
2641         testing of multi-tab concurrent consumption of storage resource, and also
2642         to test handling situations when the user deletes the database files while
2643         the script is still using the database.
2644
2645         * CMakeLists.txt:
2646         * GNUmakefile.list.am:
2647         * Modules/webdatabase/DatabaseTracker.cpp:
2648         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
2649         (WebCore::DatabaseTracker::originLockFor):
2650         (WebCore::DatabaseTracker::deleteOriginLockFor):
2651         (WebCore::DatabaseTracker::deleteOrigin):
2652         * Modules/webdatabase/DatabaseTracker.h:
2653         * Modules/webdatabase/OriginLock.cpp: Added.
2654         (WebCore::OriginLock::lockFileNameForPath):
2655         (WebCore::OriginLock::OriginLock):
2656         (WebCore::OriginLock::~OriginLock):
2657         (WebCore::OriginLock::lock):
2658         (WebCore::OriginLock::unlock):
2659         * Modules/webdatabase/OriginLock.h: Added.
2660         * Modules/webdatabase/SQLStatement.cpp:
2661         (WebCore::SQLStatement::performCallback):
2662         * Modules/webdatabase/SQLTransactionBackend.cpp:
2663         (WebCore::SQLTransactionBackend::doCleanup):
2664         (WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
2665         (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
2666         (WebCore::SQLTransactionBackend::postflightAndCommit):
2667         (WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
2668         (WebCore::SQLTransactionBackend::acquireOriginLock):
2669         (WebCore::SQLTransactionBackend::releaseOriginLockIfNeeded):
2670         * Modules/webdatabase/SQLTransactionBackend.h:
2671         (SQLTransactionBackend):
2672         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
2673         (WebCore::getDatabaseIdentifier):
2674         * Target.pri:
2675         * WebCore.gypi:
2676         * WebCore.vcproj/WebCore.vcproj:
2677         * WebCore.vcxproj/WebCore.vcxproj:
2678         * WebCore.vcxproj/WebCore.vcxproj.filters:
2679         * WebCore.xcodeproj/project.pbxproj:
2680         * config.h:
2681         * platform/FileSystem.h:
2682         * platform/posix/FileSystemPOSIX.cpp:
2683         (WebCore::lockFile):
2684         (WebCore::unlockFile):
2685
2686 2013-03-05  Ilya Tikhonovsky  <loislo@chromium.org>
2687
2688         Web Inspector: move PopoverContentHelper from TimelinePresentationModel.js to Popover.js.
2689         https://bugs.webkit.org/show_bug.cgi?id=111431
2690
2691         Reviewed by Yury Semikhatsky.
2692
2693         class WebInspector.TimelinePresentationModel.PopoverContentHelper was renamed to WebInspector.PopoverContentHelper.
2694         Style names were changed accordingly.
2695
2696         * inspector/front-end/Popover.js:
2697         (WebInspector.PopoverContentHelper):
2698         (WebInspector.PopoverContentHelper.prototype.contentTable):
2699         (WebInspector.PopoverContentHelper.prototype._createCell):
2700         (WebInspector.PopoverContentHelper.prototype.appendTextRow):
2701         (WebInspector.PopoverContentHelper.prototype.appendElementRow):
2702         (WebInspector.PopoverContentHelper.prototype.appendStackTrace):
2703         * inspector/front-end/TimelinePresentationModel.js:
2704         (WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
2705         (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
2706         (WebInspector.TimelinePresentationModel.generatePopupContentForFrame):
2707         (WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
2708         * inspector/front-end/popover.css:
2709         (.popover-details):
2710         (.popover-function-name):
2711         (.popover-stacktrace-title):
2712         (.popover-details-row-title):
2713         (.popover-details-row-data):
2714         (.popover-details-title):
2715         * inspector/front-end/timelinePanel.css:
2716
2717 2013-03-05  Yury Semikhatsky  <yurys@chromium.org>
2718
2719         Web Inspector: remove "Live native memory chart" experiment
2720         https://bugs.webkit.org/show_bug.cgi?id=111432
2721
2722         Reviewed by Alexander Pavlov.
2723
2724         Removed support for live native memory chart.
2725
2726         * English.lproj/localizedStrings.js:
2727         * inspector/front-end/NativeMemorySnapshotView.js:
2728         * inspector/front-end/ProfileLauncherView.js:
2729         (WebInspector.ProfileLauncherView):
2730         * inspector/front-end/ProfilesPanel.js:
2731         (WebInspector.ProfilesPanel):
2732         * inspector/front-end/Settings.js:
2733         (WebInspector.ExperimentsSettings):
2734         * inspector/front-end/nativeMemoryProfiler.css:
2735
2736 2013-03-05  Andrey Kosyakov  <caseq@chromium.org>
2737
2738         Web Inspector: remove length parameter from Parse HTML timeline event
2739         https://bugs.webkit.org/show_bug.cgi?id=111421
2740
2741         Reviewed by Yury Semikhatsky.
2742
2743         - remove length parameter in all instrumentation methods used to emit ParseHTML timeline event;
2744         - drive-by style fixes.
2745
2746         * html/parser/HTMLDocumentParser.cpp:
2747         (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
2748         (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
2749         (WebCore::HTMLDocumentParser::pumpTokenizer):
2750         * inspector/InspectorInstrumentation.cpp:
2751         (WebCore):
2752         (WebCore::InspectorInstrumentation::willWriteHTMLImpl):
2753         (WebCore::InspectorInstrumentation::didWriteHTMLImpl):
2754         * inspector/InspectorInstrumentation.h:
2755         (InspectorInstrumentation):
2756         (WebCore::InspectorInstrumentation::willWriteHTML):
2757         (WebCore::InspectorInstrumentation::didWriteHTML):
2758         * inspector/InspectorTimelineAgent.cpp:
2759         (WebCore::InspectorTimelineAgent::willWriteHTML):
2760         (WebCore::InspectorTimelineAgent::didWriteHTML):
2761         * inspector/InspectorTimelineAgent.h:
2762         (InspectorTimelineAgent):
2763         * inspector/TimelineRecordFactory.cpp:
2764         (WebCore::TimelineRecordFactory::createParseHTMLData):
2765         * inspector/TimelineRecordFactory.h:
2766         (TimelineRecordFactory):
2767
2768 2013-03-05  Alexei Filippov  <alph@chromium.org>
2769
2770         Web Inspector: allow each profiler panel to have own landing page
2771         https://bugs.webkit.org/show_bug.cgi?id=111298
2772
2773         Reviewed by Yury Semikhatsky.
2774
2775         Refactor profiler landing page to allow different profiler panels to have own landing pages.
2776           - MultiProfileLauncherView is inherited from ProfileLauncherView
2777           - Native memory distribution profiler has got a custom page.
2778
2779         No new tests: code refactoring.
2780
2781         * inspector/front-end/HeapSnapshotView.js:
2782         (WebInspector.HeapSnapshotView.prototype.get profile):
2783         (WebInspector.HeapSnapshotView.prototype.get baseProfile):
2784         (WebInspector.HeapSnapshotView.prototype._profiles):
2785         * inspector/front-end/NativeMemorySnapshotView.js:
2786         * inspector/front-end/ProfileLauncherView.js:
2787         (WebInspector.ProfileLauncherView):
2788         (WebInspector.ProfileLauncherView.prototype.addProfileType):
2789         (WebInspector.ProfileLauncherView.prototype._controlButtonClicked):
2790         (WebInspector.ProfileLauncherView.prototype._updateControls):
2791         (WebInspector.ProfileLauncherView.prototype.profileStarted):
2792         (WebInspector.ProfileLauncherView.prototype.profileFinished):
2793         (WebInspector.MultiProfileLauncherView):
2794         (WebInspector.MultiProfileLauncherView.prototype.addProfileType):
2795         (WebInspector.MultiProfileLauncherView.prototype._profileTypeChanged):
2796         (WebInspector.NativeProfileLauncherView):
2797         * inspector/front-end/ProfilesPanel.js:
2798         (WebInspector.ProfilesPanel):
2799         (WebInspector.ProfilesPanel.prototype._createLauncherView):
2800         (WebInspector.CPUProfilerPanel):
2801         (WebInspector.CSSSelectorProfilerPanel):
2802         (WebInspector.HeapProfilerPanel):
2803         (WebInspector.CanvasProfilerPanel):
2804         (WebInspector.MemoryChartProfilerPanel):
2805         (WebInspector.MemoryChartProfilerPanel.prototype._createLauncherView):
2806         (WebInspector.NativeMemoryProfilerPanel):
2807         * inspector/front-end/profilesPanel.css:
2808         (.panel-enabler-view.profile-launcher-view button:not(.status-bar-item)):
2809
2810 2013-03-05  Eugene Klyuchnikov  <eustas@chromium.org>
2811
2812         Web Inspector: Clarify some StylesSidebarPanel and CSSMetadata JSDocs.
2813         https://bugs.webkit.org/show_bug.cgi?id=111427
2814
2815         Reviewed by Alexander Pavlov.
2816
2817         Goal: reflect in JSDoc that non-null array is passed to completionsReady callback.
2818
2819         * inspector/front-end/CSSMetadata.js:
2820         Added JSDocs, avoided possible NPEs.
2821         * inspector/front-end/StylesSidebarPane.js:
2822         Fixed JSDocs, removed unused assignment.
2823
2824 2013-03-05  David Kilzer  <ddkilzer@apple.com>
2825
2826         BUILD FIX (r144727): Change type of columnRange and rowRange to pair<unsigned, unsigned>
2827         <http://webkit.org/b/110050>
2828
2829         Fixes the following build failures:
2830
2831             Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:741:30: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
2832                 tableCell->rowIndexRange(rowRange);
2833                                          ^~~~~~~~
2834             In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
2835             Source/WebCore/accessibility/AccessibilityTableCell.h:47:58: note: passing argument to parameter 'rowRange' here
2836                 virtual void rowIndexRange(pair<unsigned, unsigned>& rowRange);
2837                                                                      ^
2838             Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:742:33: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
2839                 tableCell->columnIndexRange(columnRange);
2840                                             ^~~~~~~~~~~
2841             In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
2842             Source/WebCore/accessibility/AccessibilityTableCell.h:49:61: note: passing argument to parameter 'columnRange' here
2843                 virtual void columnIndexRange(pair<unsigned, unsigned>& columnRange);
2844                                                                         ^
2845             Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:804:30: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
2846                 tableCell->rowIndexRange(rowRange);
2847                                          ^~~~~~~~
2848             In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
2849             Source/WebCore/accessibility/AccessibilityTableCell.h:47:58: note: passing argument to parameter 'rowRange' here
2850                 virtual void rowIndexRange(pair<unsigned, unsigned>& rowRange);
2851                                                                      ^
2852             Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:818:33: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
2853                 tableCell->columnIndexRange(columnRange);
2854                                             ^~~~~~~~~~~
2855             In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
2856             Source/WebCore/accessibility/AccessibilityTableCell.h:49:61: note: passing argument to parameter 'columnRange' here
2857                 virtual void columnIndexRange(pair<unsigned, unsigned>& columnRange);
2858                                                             ^
2859             4 errors generated.
2860
2861         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
2862         (-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
2863         (-[WebAccessibilityObjectWrapper accessibilityRowRange]):
2864         (-[WebAccessibilityObjectWrapper accessibilityColumnRange]):
2865
2866 2013-03-04  Andrey Kosyakov  <caseq@chromium.org>
2867
2868         Web Inspector: [refactoring] set frame identifiers in timeline records early, do not keep them in event stack
2869         https://bugs.webkit.org/show_bug.cgi?id=111345
2870
2871         Reviewed by Pavel Feldman.
2872
2873         * inspector/InspectorTimelineAgent.cpp:
2874         (WebCore::InspectorTimelineAgent::pushGCEventRecords):
2875         (WebCore::InspectorTimelineAgent::addRecordToTimeline):
2876         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
2877         (WebCore::InspectorTimelineAgent::setFrameIdentifier):
2878         (WebCore):
2879         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
2880         (WebCore::InspectorTimelineAgent::appendRecord):
2881         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
2882         (WebCore::InspectorTimelineAgent::commitFrameRecord):
2883         * inspector/InspectorTimelineAgent.h:
2884         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
2885         (TimelineRecordEntry):
2886         (InspectorTimelineAgent):
2887
2888 2013-03-05  Tommy Widenflycht  <tommyw@google.com>
2889
2890         MediaStream API: Add the getStreamById method on RTCPeerConnection
2891         https://bugs.webkit.org/show_bug.cgi?id=111311
2892
2893         Reviewed by Adam Barth.
2894
2895         Adding the missing method on RTCPeerConnection defined here:
2896         http://dev.w3.org/2011/webrtc/editor/webrtc.html#widl-RTCPeerConnection-getStreamById-MediaStream-DOMString-streamId
2897
2898         Existing tests have been extended to cover patch.
2899
2900         * Modules/mediastream/RTCPeerConnection.cpp:
2901         (WebCore::RTCPeerConnection::getStreamById):
2902         (WebCore):
2903         * Modules/mediastream/RTCPeerConnection.h:
2904         (RTCPeerConnection):
2905         * Modules/mediastream/RTCPeerConnection.idl:
2906         * platform/chromium/support/WebMediaStream.cpp:
2907         (WebKit::WebMediaStream::initialize):
2908         (WebKit):
2909         * platform/mediastream/MediaStreamSource.cpp:
2910         (WebCore::MediaStreamSource::setReadyState):
2911
2912 2013-03-05  Antoine Quint  <graouts@apple.com>
2913
2914         Web Inspector: allow retrieval of composited layers in a given DOM subtree
2915         https://bugs.webkit.org/show_bug.cgi?id=111312
2916
2917         Introduce the LayerTreeAgent.layersForNode(node) method allowing the front-end
2918         to gather all composited layers associated with nodes in the subtree of which
2919         the provided node is the root.
2920
2921         In order to gather the layers in the subtree, we first traverse the node's
2922         renderer's RenderObject hierarchy and whenever we encounter a RenderObject
2923         that has a RenderLayer, we then traverse that renderLayer's RenderLayer
2924         hierarchy. This allows for a quick path through the relevant objects we're
2925         gathering.
2926
2927         Layers gathered will push the node to which they're associated, allowing a
2928         nodeId for this layer to be listed in the Layer object sent to the front-end.
2929         It is crucial to be able to provide a nodeId as well as a layerId for a Layer
2930         object in order to be able to correctly assess mutations in the layer tree.
2931         For instance, it is expected that a node's layer be replaced by a new layer
2932         to represent a slightly different rendering of its content, but the front-end
2933         should be able to represent this layer as an object for which only certain
2934         attributes have changed (like the "paintCount" property).
2935
2936         Layer objects also indicate whether they're associated to a node hosted in a
2937         shadow tree (the optional "isInShadowTree" property) in order for the front-end
2938         to be able to only show this layer if the option to show nodes hosted in shadow
2939         tree is enabled.
2940
2941         Finally, since we're only gathering composited layers, we're removing the
2942         "isLayerComposited" property and removing the optional flag on the "paintCount",
2943         "memory" and "compositedBounds" properties.
2944
2945         Reviewed by Simon Fraser.
2946
2947         Test: inspector-protocol/layers/layers-for-node.html
2948
2949         * inspector/Inspector.json:
2950         * inspector/InspectorLayerTreeAgent.cpp:
2951         (WebCore::InspectorLayerTreeAgent::layersForNode):
2952         (WebCore):
2953         (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
2954         (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
2955         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
2956         (WebCore::InspectorLayerTreeAgent::idForNode):
2957         * inspector/InspectorLayerTreeAgent.h:
2958         (InspectorLayerTreeAgent):
2959
2960 2013-03-04  Andrey Kosyakov  <caseq@chromium.org>
2961
2962         Web Inspector: use timestamps consistent with rest of Timeline in WebSocket events.
2963         https://bugs.webkit.org/show_bug.cgi?id=111344
2964
2965         - create web socket related records in a manner consistent with the rest of timeline.
2966
2967         Reviewed by Pavel Feldman.
2968
2969         * inspector/InspectorTimelineAgent.cpp:
2970         (WebCore::InspectorTimelineAgent::didCreateWebSocket):
2971         (WebCore::InspectorTimelineAgent::willSendWebSocketHandshakeRequest):
2972         (WebCore::InspectorTimelineAgent::didReceiveWebSocketHandshakeResponse):
2973         (WebCore::InspectorTimelineAgent::didDestroyWebSocket):
2974         * inspector/InspectorTimelineAgent.h:
2975         (InspectorTimelineAgent):
2976
2977 2013-03-05  Andrei Bucur  <abucur@adobe.com>
2978
2979         [CSS Regions] Crash when MathML used in CSS Regions
2980         https://bugs.webkit.org/show_bug.cgi?id=110686
2981
2982         Reviewed by David Hyatt.
2983
2984         The MathML blocks trigger a children layout when computing the preferred widths. This happens to determine the preferred
2985         logical heights of the children. When the layout reaches the line boxes computation the preferred width of the containing block
2986         is requested. Because it wasn't computed, the layout of the children is started again to determine the preferred logical heights.
2987         This causes an infinite recursion and triggers a stack overflow.
2988
2989         The patch introduces a new RAII utility class that disables fragmentation when the constructor is called and restores it
2990         on the destructor. This class is used when computing the preferred height for the children of a MathML block.
2991
2992         Test: fast/regions/mathml-crash.html
2993
2994         * rendering/RenderObject.cpp:
2995         (WebCore::RenderObject::setFlowThreadStateIncludingDescendants): Do not cross RenderFlowThread boundaries when updating the flow thread
2996         state flag. The innermost flow threads need to manage their descendants flag values.
2997         * rendering/RenderView.cpp:
2998         (WebCore::FragmentationDisabler::FragmentationDisabler):
2999         (WebCore):
3000         (WebCore::FragmentationDisabler::~FragmentationDisabler):
3001         * rendering/RenderView.h:
3002         (FragmentationDisabler):
3003         (WebCore):
3004         * rendering/mathml/RenderMathMLBlock.cpp:
3005         (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
3006
3007 2013-03-05  Mike West  <mkwst@chromium.org>
3008
3009         Cleanup: Move HitTestLocation and HitTestResult into separate files.
3010         https://bugs.webkit.org/show_bug.cgi?id=111294
3011
3012         Reviewed by Allan Sandfeld Jensen.
3013
3014         HitTestLocation and HitTestResult currently both live in
3015         HitTestResult.h. That makes things more difficult to understand than
3016         they should be, and violates the one-class-one-file principle that
3017         WebKit generally follows. Happily, it's fairly trivial to fix.
3018
3019         This should have no visible change; it's strictly an internal
3020         refactoring. It doesn't even touch any implementation code: we're
3021         just moving bits from one place to another.
3022
3023         * CMakeLists.txt:
3024         * GNUmakefile.list.am:
3025         * Target.pri:
3026         * WebCore.gypi:
3027         * WebCore.vcproj/WebCore.vcproj:
3028         * WebCore.xcodeproj/project.pbxproj:
3029             Hey, look: a new file! Let's add it to six different build systems! :)
3030         * rendering/HitTestLocation.cpp: Added.
3031         (WebCore):
3032         (WebCore::HitTestLocation::HitTestLocation):
3033         (WebCore::HitTestLocation::~HitTestLocation):
3034         (WebCore::HitTestLocation::operator=):
3035         (WebCore::HitTestLocation::move):
3036         (WebCore::HitTestLocation::intersectsRect):
3037         (WebCore::HitTestLocation::intersects):
3038         (WebCore::HitTestLocation::rectForPoint):
3039         * rendering/HitTestLocation.h: Added.
3040         (WebCore):
3041         (HitTestLocation):
3042         (WebCore::HitTestLocation::point):
3043         (WebCore::HitTestLocation::roundedPoint):
3044         (WebCore::HitTestLocation::region):
3045         (WebCore::HitTestLocation::isRectBasedTest):
3046         (WebCore::HitTestLocation::isRectilinear):
3047         (WebCore::HitTestLocation::boundingBox):
3048         (WebCore::HitTestLocation::topPadding):
3049         (WebCore::HitTestLocation::rightPadding):
3050         (WebCore::HitTestLocation::bottomPadding):
3051         (WebCore::HitTestLocation::leftPadding):
3052         (WebCore::HitTestLocation::transformedPoint):
3053         (WebCore::HitTestLocation::transformedRect):
3054         * rendering/HitTestResult.cpp:
3055         * rendering/HitTestResult.h:
3056             Move all this code from HitTestResult.* to HitTestLocation.*.
3057         * rendering/RenderBlock.cpp:
3058             Include HitTestLocation.h.
3059
3060 2013-03-05  Jochen Eisinger  <jochen@chromium.org>
3061
3062         Refactor UserGestureIndicator::Token to be a top-level class
3063         https://bugs.webkit.org/show_bug.cgi?id=111412
3064
3065         Reviewed by Nico Weber.
3066
3067         This will allow for forward declaring the class in a public WebKit
3068         API header. The goal is to enable the embedder to hold on to a
3069         UserGestureToken.
3070
3071         * dom/UserGestureIndicator.cpp:
3072         (WebCore::UserGestureIndicator::UserGestureIndicator):
3073         (WebCore::UserGestureIndicator::currentToken):
3074         * dom/UserGestureIndicator.h:
3075         (UserGestureToken):
3076         (WebCore::UserGestureToken::~UserGestureToken):
3077         (WebCore):
3078         (UserGestureIndicator):
3079         * page/DOMTimer.h:
3080         (DOMTimer):
3081         * page/EventHandler.h:
3082
3083 2013-03-05  Mike West  <mkwst@chromium.org>
3084
3085         Remove redundant code in Document::updateHoverActiveState.
3086         https://bugs.webkit.org/show_bug.cgi?id=111303
3087
3088         Reviewed by Darin Adler.
3089
3090         Document::updateHoverActiveState currently looks for touchrelease events
3091         and explictly clears out the hover state for all nodes between the
3092         currently hovered node and the top of the hover chain. This is actually
3093         redundant with the logic in the rest of the function; we can simplify by
3094         setting the Element* we're working with to 0, which causes the later
3095         loops to do the necessary work.
3096
3097         There should be no web-visible effect from this change; it should simply
3098         make this function less complex.
3099
3100         Extracted from Allan Sandfeld Jensen's original patch to wkbug.com/98168
3101
3102         * dom/Document.cpp:
3103         (WebCore::Document::updateHoverActiveState):
3104             Set innerElementInDocument to 0 rather than walking the hover chain
3105             and clearing it when we see a touchrelease event. The rest of the
3106             code in this function will have the same effect.
3107
3108 2013-03-05  Koji Hara  <kojih@chromium.org>
3109
3110         [V8] Remove unused custom indexedPropertyGetter
3111         https://bugs.webkit.org/show_bug.cgi?id=111409
3112
3113         Reviewed by Kentaro Hara.
3114
3115         Remove unused custom indexedPropertyGetter.
3116         There are 9 custom indexedPropertyGetter, including an unused one(NamedNodeMap).
3117         This commit assures all existing custom indexedPropertyGetter(for V8) are used.
3118
3119         No new tests. Simple refactoring.
3120
3121         * bindings/v8/custom/V8NamedNodeMapCustom.cpp: Remove indexedPropertyGetter
3122
3123 2013-03-05  Hajime Morrita  <morrita@google.com>
3124
3125         ShadowRoot needs guardRef() and guardDeref()
3126         https://bugs.webkit.org/show_bug.cgi?id=109777
3127
3128         Reviewed by Dimitri Glazkov.
3129
3130         This change moves m_guardRefCount from Document to TreeScope,
3131         which allows ShadowRoot to be guarded by guardRef() mechanism as
3132         Document. After r137524, Node referes TreeScope instead of
3133         Document. This is natural consequence of the change: It no longer
3134         makes sense to guardRef() Document pointer from Node.
3135
3136         Detail:
3137
3138         - Document::m_guardRefCount and related funcdtions are moved to TreeScope
3139         - Document::removedLastRef is factored out into TreeScope::removedLastRefToScope(),
3140           TreeScope::dispose() and Docuent::dispose(). ShadowRoot also got its own dispose() implementation.
3141         - Moved guardRef() and guardDeref() calls to TreeScope and Node.
3142           Note that there are two "guarded" TreeScope references. One is
3143           Node::m_treeScope and another is TreeScope::m_parentTreeScope.
3144           The guarded-ref management is now encapsulated in these two classes.
3145
3146         No new tests. Covered by existing tests.
3147
3148         * WebCore.exp.in:
3149         * dom/Document.cpp:
3150         (WebCore::Document::Document):
3151         (WebCore::Document::~Document):
3152         (WebCore::Document::dispose): Extracted from removedLastRef()
3153         * dom/Document.h:
3154         (WebCore::Node::isTreeScope):
3155         (WebCore::Node::Node):
3156         * dom/DocumentFragment.cpp:
3157         (WebCore::DocumentFragment::DocumentFragment): Remove ASSERT() and move it to ...
3158         (WebCore::DocumentFragment::create): ... here, to allow NULL document from ShadowRoot.
3159         * dom/Node.cpp:
3160         (WebCore::Node::~Node):
3161         (WebCore::Node::removedLastRef):
3162         * dom/Node.h:
3163         (WebCore::Node::setTreeScope):
3164         * dom/Element.cpp:
3165         (WebCore::Element::ensureAttr): This has been wrong and is fixed in this revision since the incorrectness is unveiled by this change.
3166         * dom/ShadowRoot.cpp:
3167         (WebCore::ShadowRoot::ShadowRoot): Passed NULL document to superclass. This aligns what Document is doing.
3168         (WebCore::ShadowRoot::dispose): Added.
3169         * dom/ShadowRoot.h:
3170         (ShadowRoot):
3171         * dom/TreeScope.cpp:
3172         (SameSizeAsTreeScope):
3173         (WebCore::TreeScope::TreeScope):
3174         (WebCore::TreeScope::~TreeScope):
3175         (WebCore::TreeScope::dispose): Added.
3176         (WebCore::TreeScope::setParentTreeScope):
3177         (WebCore::TreeScope::deletionHasBegun):
3178         (WebCore::TreeScope::beginDeletion):
3179         (WebCore::TreeScope::refCount): Added.
3180         * dom/TreeScope.h: Turned m_rootNode to Node* from ContainerNode* for Node::isTreeScope to be inlined.
3181         (WebCore::TreeScope::guardRef): Pulled up from Document.
3182         (WebCore::TreeScope::guardDeref): Ditto.
3183         (WebCore::TreeScope::hasGuardRefCount): Added to hide m_guardRefCount.
3184         (WebCore::TreeScope::deletionHasBegun): Added.
3185         (WebCore::TreeScope::beginDeletion): Added.
3186         (WebCore::TreeScope::removedLastRefToScope): Pulled up from Document.
3187         * dom/TreeScopeAdopter.cpp:
3188         (WebCore::TreeScopeAdopter::moveTreeToNewScope):
3189         (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
3190
3191 2013-03-04  Uday Kiran  <udaykiran@motorola.com>
3192
3193         getPropertyValue for -webkit-text-stroke returns null, should compute the shorthand value
3194         https://bugs.webkit.org/show_bug.cgi?id=111018
3195
3196         Reviewed by Alexander Pavlov.
3197
3198         Test: fast/css/getPropertyValue-webkit-text-stroke.html
3199
3200         * css/StylePropertySet.cpp:
3201         (WebCore::StylePropertySet::getPropertyValue):
3202
3203 2013-03-04  Uday Kiran  <udaykiran@motorola.com>
3204
3205         getPropertyValue for -webkit-columns returns null, should compute the shorthand value
3206         https://bugs.webkit.org/show_bug.cgi?id=111011
3207
3208         Reviewed by Alexander Pavlov.
3209
3210         Test: fast/css/getPropertyValue-columns.html
3211
3212         * css/StylePropertySet.cpp:
3213         (WebCore::StylePropertySet::getPropertyValue):
3214
3215 2013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
3216
3217         Web Inspector: Do not accumulate file system files, add them to workspace immediately
3218         https://bugs.webkit.org/show_bug.cgi?id=111325
3219
3220         Reviewed by Pavel Feldman.
3221
3222         * inspector/front-end/FileSystemProjectDelegate.js:
3223         (WebInspector.FileSystemProjectDelegate.prototype.populate.fileLoaded):
3224         (WebInspector.FileSystemProjectDelegate.prototype.populate):
3225         * inspector/front-end/IsolatedFileSystem.js:
3226         (WebInspector.IsolatedFileSystem.prototype.innerCallback):
3227         (WebInspector.IsolatedFileSystem.prototype.requestFilesRecursive):
3228
3229 2013-03-04  Kinuko Yasuda  <kinuko@chromium.org>
3230
3231         Unreviewed Windows build fix attempt.
3232
3233         floor method is ambigious so explicitly specify the type.
3234
3235         * html/canvas/WebGLRenderingContext.cpp:
3236         (WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
3237
3238 2013-03-04  Chris Fleizach  <cfleizach@apple.com>
3239
3240         AX: cellForColumnAndRow fails for tables with hidden table cells
3241         https://bugs.webkit.org/show_bug.cgi?id=110050
3242
3243         Reviewed by Tim Horton.
3244
3245         If a table had hidden cells, then accessibility code was being confused in a few ways.
3246         1) The cellForColumnAndRow method would return the wrong information since that was
3247            using the RenderTableSection to retrieve a cell, which did not have the same data as the AXTable
3248         2) The way we were adding children made it impossible to determine column and row range because we 
3249            would skip rows that had hidden children
3250         3) AccessibilityARIAGrid and AccessibilityTable were using different methods for cellForColumnAndRow
3251
3252         The fix does a few things to make things right:
3253         1) Always add an accessibility row, even if there are no visible cells in that row.
3254         2) Have one method for AXTable and AXARIAGrid for cellForColumnAndRow.
3255         3) Change cellForColumnAndRow to query the accessibility children rather than the RenderTableSection in determining the row, col info.
3256         4) cellForColumnAndRow should use unsigned values instead of int values.
3257
3258         Test: accessibility/table-with-hidden-head-section.html
3259
3260         * accessibility/AccessibilityARIAGrid.cpp:
3261         (WebCore):
3262         * accessibility/AccessibilityARIAGrid.h:
3263         (AccessibilityARIAGrid):
3264         * accessibility/AccessibilityARIAGridCell.cpp:
3265         (WebCore::AccessibilityARIAGridCell::rowIndexRange):
3266         (WebCore::AccessibilityARIAGridCell::columnIndexRange):
3267         * accessibility/AccessibilityARIAGridCell.h:
3268         (AccessibilityARIAGridCell):
3269         * accessibility/AccessibilityTable.cpp:
3270         (WebCore::AccessibilityTable::addChildren):
3271         (WebCore::AccessibilityTable::cellForColumnAndRow):
3272         * accessibility/AccessibilityTable.h:
3273         (WebCore):
3274         (AccessibilityTable):
3275         * accessibility/AccessibilityTableCell.cpp:
3276         (WebCore::AccessibilityTableCell::rowIndexRange):
3277         (WebCore::AccessibilityTableCell::columnIndexRange):
3278         * accessibility/AccessibilityTableCell.h:
3279         (AccessibilityTableCell):
3280         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
3281         (webkitAccessibleTableGetColumnAtIndex):
3282         (webkitAccessibleTableGetRowAtIndex):
3283         (webkitAccessibleTableGetColumnExtentAt):
3284         (webkitAccessibleTableGetRowExtentAt):
3285         (webkitAccessibleTableGetColumnHeader):
3286         (webkitAccessibleTableGetRowHeader):
3287         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
3288         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
3289         * rendering/RenderTableSection.h:
3290         (RenderTableSection):
3291         (WebCore::RenderTableSection::rowRendererAt):
3292
3293 2013-03-04  Arpita Bahuguna  <a.bah@samsung.com>
3294
3295         getAttribute does not behave correctly for mixed-case attributes on HTML elements
3296         https://bugs.webkit.org/show_bug.cgi?id=105713
3297
3298         Reviewed by Andreas Kling.
3299
3300         getAttribute() and getAttributeNode() APIs do not convert the
3301         passed attribute name to lowercase before comparing against the
3302         existing attributes.
3303         The specification however states that the passed name should
3304         be converted to ASCII lowercase before checking for the existence
3305         of the given attribute. [www.w3.org/TR/domcore/#dom-element-getattribute]
3306
3307         Test: fast/dom/Element/getAttribute-case-insensitivity.html
3308
3309         * dom/Element.h:
3310         (WebCore::ElementData::getAttributeItemIndex):
3311         getAttributeItemIndex() accepts a bool param 'shouldIgnoreAttributeCase'
3312         which specifies whether the attribute's case should be ignored
3313         before comparison. But inspite of this param's value we still carry
3314         out a case sensitive search.
3315         Have modified the same to convert the passed attribute's name to
3316         lowercase if 'shouldIgnoreAttributeCase' is true.
3317
3318 2013-03-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
3319
3320         [Chromium] Add runtime flag for font load events
3321         https://bugs.webkit.org/show_bug.cgi?id=111296
3322
3323         Reviewed by Kent Tamura.
3324
3325         Add a runtime feature flag for FontLoader interface (disabled by default),
3326         and enable ENABLE_FONT_LOAD_EVENTS build flag for chromium.
3327
3328         * bindings/generic/RuntimeEnabledFeatures.cpp:
3329         (WebCore):
3330         * bindings/generic/RuntimeEnabledFeatures.h:
3331         (RuntimeEnabledFeatures):
3332         (WebCore::RuntimeEnabledFeatures::setFontLoadEventsEnabled):
3333         (WebCore::RuntimeEnabledFeatures::fontLoadEventsEnabled):
3334
3335 2013-03-04  Brandon Jones  <bajones@google.com>
3336
3337         WEBGL_compressed_texture_atc implementation
3338         https://bugs.webkit.org/show_bug.cgi?id=110496
3339
3340         Reviewed by Kenneth Russell.
3341
3342         Test: webgl/conformance/extensions/webgl-compressed-texture-atc.html
3343
3344         Exposes the WEBGL_compressed_texture_atc extension, but is unverified since no desktop hardware supports
3345         the format that I am aware of. Should enable mobile ports to expose the format, however.
3346
3347         * CMakeLists.txt:
3348         * DerivedSources.make:
3349         * DerivedSources.pri:
3350         * GNUmakefile.list.am:
3351         * Target.pri:
3352         * WebCore.gypi:
3353         * WebCore.xcodeproj/project.pbxproj:
3354         * bindings/js/JSWebGLRenderingContextCustom.cpp:
3355         (WebCore::toJS):
3356         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
3357         (WebCore::toV8Object):
3358         * html/canvas/WebGLCompressedTextureATC.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
3359         (WebCore):
3360         (WebCore::WebGLCompressedTextureATC::WebGLCompressedTextureATC):
3361         (WebCore::WebGLCompressedTextureATC::~WebGLCompressedTextureATC):
3362         (WebCore::WebGLCompressedTextureATC::getName):
3363         (WebCore::WebGLCompressedTextureATC::create):
3364         (WebCore::WebGLCompressedTextureATC::supported):
3365         * html/canvas/WebGLCompressedTextureATC.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
3366         (WebCore):
3367         (WebGLCompressedTextureATC):
3368         * html/canvas/WebGLCompressedTextureATC.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
3369         * html/canvas/WebGLExtension.h:
3370         * html/canvas/WebGLRenderingContext.cpp:
3371         (WebCore):
3372         (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
3373         (WebCore::WebGLRenderingContext::getExtension):
3374         (WebCore::WebGLRenderingContext::getSupportedExtensions):
3375         (WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
3376         * html/canvas/WebGLRenderingContext.h:
3377         (WebCore):
3378         (WebGLRenderingContext):
3379         * platform/graphics/Extensions3D.h:
3380
3381
3382 2013-03-04  Eugene Klyuchnikov  <eustas@chromium.org>
3383
3384         Web Inspector: Exceptions when WebInspector run in hosted mode.
3385         https://bugs.webkit.org/show_bug.cgi?id=111326
3386
3387         Reviewed by Pavel Feldman.
3388
3389         There is bug in commands code generation in InspectorBackend.js
3390         As a consequence all protocol enums have wrong names and cause
3391         exception when refererenced.
3392
3393         Currently protocol enums are referenced only from NetworkManager.
3394
3395         Test: inspector/inspector-backend-commands-generation.html
3396
3397         * inspector/front-end/InspectorBackend.js:
3398         (InspectorBackendClass.prototype.loadFromJSONIfNeeded):
3399         Use static method to generate code.
3400         (InspectorBackendClass._generateCommands):
3401         Extracted from loadFromJSONIfNeeded. Typo fixed.
3402
3403 2013-03-04  Chris Rogers  <crogers@google.com>
3404
3405         Add audio hardware support for multi-channel output by implementing AudioDestinationNode.maxChannelCount
3406         https://bugs.webkit.org/show_bug.cgi?id=111385
3407
3408         Reviewed by James Robinson.
3409         
3410         See specification details for .maxChannelCount:
3411         https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioDestinationNode
3412         
3413         * Modules/webaudio/AudioDestinationNode.h:
3414         (WebCore::AudioDestinationNode::maxChannelCount):
3415         * Modules/webaudio/AudioDestinationNode.idl:
3416         * Modules/webaudio/AudioNode.h:
3417         Implement .maxChannelCount attribute.
3418         
3419         (AudioNode):
3420         * Modules/webaudio/DefaultAudioDestinationNode.h:
3421         * Modules/webaudio/DefaultAudioDestinationNode.cpp:
3422         (WebCore::DefaultAudioDestinationNode::initialize):
3423         (WebCore::DefaultAudioDestinationNode::createDestination):
3424         (WebCore::DefaultAudioDestinationNode::enableInput):
3425         Call to createDestination() now takes no argument.
3426         Instead we maintain a member variable for the input device ID.
3427         (WebCore::DefaultAudioDestinationNode::maxChannelCount):
3428         (WebCore::DefaultAudioDestinationNode::setChannelCount):
3429         Check port-specific hardware support for maxChannelCount(),
3430         and allow setting the channel count based on what the hardware
3431         supports.
3432         
3433         * platform/audio/AudioDestination.h:
3434         (AudioDestination):
3435         * platform/audio/chromium/AudioDestinationChromium.cpp:
3436         (WebCore::AudioDestination::maxChannelCount):
3437         (WebCore::AudioDestinationChromium::render):
3438         Call into chromium WebKit API: audioHardwareOutputChannels().
3439