1 2013-01-11 Emil A Eklund <eae@chromium.org>
3 offsetWidth/height incorrect for images when zoomed
4 https://bugs.webkit.org/show_bug.cgi?id=106624
6 Reviewed by Levi Weintraub.
8 offsetWidth and height are incorrect for images at certain zoom
9 levels due to flooring the values ones adjusted for zoom.
10 By rounding the value instead we avoid the problem and return
13 Test: fast/images/zoomed-offset-size.html
16 (WebCore::Element::offsetWidth):
17 (WebCore::Element::offsetHeight):
18 (WebCore::Element::clientWidth):
19 (WebCore::Element::clientHeight):
20 Change to round (as opposed to floor) the zoom adjusted value.
22 * rendering/RenderObject.h:
23 (WebCore::adjustLayoutUnitForAbsoluteZoom):
24 * rendering/style/RenderStyle.h:
25 (WebCore::adjustLayoutUnitForAbsoluteZoom):
26 Add LayoutUnit version of adjustForAbsoluteZoom to avoid float
29 2013-01-14 Mark Pilgrim <pilgrim@chromium.org>
31 [Chromium] Move AudioDestinationChromium into WebCore
32 https://bugs.webkit.org/show_bug.cgi?id=106803
34 Reviewed by Adam Barth.
36 This doesn't really belong in WebKit/chromium/src since it defines
37 things directly in the WebCore namespace.
40 * platform/audio/chromium/AudioDestinationChromium.cpp: Added.
42 (WebCore::AudioDestination::create):
43 (WebCore::AudioDestinationChromium::AudioDestinationChromium):
44 (WebCore::AudioDestinationChromium::~AudioDestinationChromium):
45 (WebCore::AudioDestinationChromium::start):
46 (WebCore::AudioDestinationChromium::stop):
47 (WebCore::AudioDestination::hardwareSampleRate):
48 (WebCore::AudioDestinationChromium::render):
49 (WebCore::AudioDestinationChromium::provideInput):
50 * platform/audio/chromium/AudioDestinationChromium.h: Added.
52 (AudioDestinationChromium):
53 (WebCore::AudioDestinationChromium::isPlaying):
54 (WebCore::AudioDestinationChromium::sampleRate):
56 2013-01-14 Adrian Perez de Castro <aperez@igalia.com>
58 [GTK] Fix indentation for GStreamer supported MIME types list
59 https://bugs.webkit.org/show_bug.cgi?id=106812
61 Reviewed by Philippe Normand.
63 No tests. No change in behavior.
65 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
67 2013-01-14 John Bauman <jbauman@chromium.org>
69 Use correct size for DrawingBuffer readback
70 https://bugs.webkit.org/show_bug.cgi?id=106744
72 Reviewed by Kenneth Russell.
74 The value getInternalFramebufferSize is bogus if there's a
75 DrawingBuffer, so use size() instead.
77 * platform/graphics/chromium/DrawingBufferChromium.cpp:
78 (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
80 2013-01-14 Joshua Bell <jsbell@chromium.org>
82 Bindings: Remove special cases for DOMString[]
83 https://bugs.webkit.org/show_bug.cgi?id=106506
85 Remove special in binding code generators that map DOMString[] to DOMStringList.
86 Array (T[]) and sequence (sequence<T>) are supported enough now that to be used
87 for Internals, which is the only IDL that needed updating.
89 Reviewed by Adam Barth.
91 Tests: fast/forms/file/selected-files-from-history-state.html
92 fast/forms/state-restore-broken-state.html
93 fast/forms/state-restore-skip-stateless.html
95 Bindings test results updated for JS/V8.
97 * bindings/scripts/CodeGenerator.pm: Remove redundant IsArrayType (use GetArrayType instead)
98 (IsRefPtrType): Array and Sequence types are not RefPtr types.
99 * bindings/scripts/CodeGeneratorJS.pm:
100 (IndexGetterReturnsStrings): Remove special case for DOMString[].
101 (AddIncludesForType): Skip Array types, just like Sequence types. (Should probably recurse
102 for the base type, but not needed for now.)
103 (GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
104 (GetNativeType): Remove special case for DOMString[].
105 (GetNativeTypeForCallbacks): Ditto.
106 (JSValueToNative): Ditto.
107 * bindings/scripts/CodeGeneratorV8.pm:
108 (GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
109 (GetNativeType): Remove special case for DOMString[].
110 (JSValueToNative): Ditto.
111 (GetV8HeaderName): Ditto.
113 * bindings/scripts/test/JS/JSTestObj.cpp:
115 (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
116 (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
117 (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
118 (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
119 * bindings/scripts/test/JS/JSTestObj.h:
121 * bindings/scripts/test/TestObj.idl: Added explicit new cases for DOMStringList
122 * bindings/scripts/test/V8/V8TestObj.cpp:
123 (WebCore::TestObjV8Internal::overloadedMethod7Callback):
124 (WebCore::TestObjV8Internal::overloadedMethod9Callback):
125 (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
127 (WebCore::TestObjV8Internal::domStringListFunctionCallback):
129 (WebCore::ConfigureV8TestObjTemplate):
130 * testing/Internals.cpp:
131 (WebCore::Internals::formControlStateOfPreviousHistoryItem):
132 (WebCore::Internals::setFormControlStateOfPreviousHistoryItem):
133 (WebCore::Internals::iconURLs):
134 (WebCore::Internals::getReferencedFilePaths):
135 * testing/Internals.h:
137 * testing/Internals.idl: Produce DOMString[], consume sequence<DOMString> to match tests.
139 2013-01-14 Elliott Sprehn <esprehn@chromium.org>
141 Clean up WebVTTNodeType code
142 https://bugs.webkit.org/show_bug.cgi?id=106714
144 Reviewed by Tony Chang.
146 There's no reason for so many methods just to compare some enums.
147 The existing code can also be simplified quite a bit.
149 No new tests, just refactoring.
151 * css/SelectorChecker.cpp:
152 (WebCore::SelectorChecker::checkOne):
153 * css/StyleResolver.cpp:
154 (WebCore::StyleResolver::collectMatchingRules):
155 (WebCore::StyleResolver::canShareStyleWithElement):
157 (WebCore::Element::webVTTNodeType):
158 (WebCore::Element::setWebVTTNodeType):
161 * dom/ElementRareData.h:
162 (WebCore::ElementRareData::setWebVTTNodeType):
163 (WebCore::ElementRareData::webVTTNodeType):
165 * dom/NodeRareData.h:
166 (WebCore::NodeRareData::NodeRareData):
168 * html/track/TextTrack.h:
169 * html/track/TextTrackCue.cpp:
170 (WebCore::TextTrackCue::markFutureAndPastNodes):
172 2013-01-14 Antti Koivisto <antti@apple.com>
174 REGRESSION (r139218): Flaky assertion in WebCore::StorageTask::StorageTask releasing memory
175 https://bugs.webkit.org/show_bug.cgi?id=106718
177 Reviewed by Andreas Kling.
179 Type assertion was missing a new type.
181 * storage/StorageTask.cpp:
182 (WebCore::StorageTask::StorageTask):
184 2013-01-14 Yury Semikhatsky <yurys@chromium.org>
186 [REGRESSION] Dev Tools popup for Workers forgets sizes/shows tiny in top left
187 https://bugs.webkit.org/show_bug.cgi?id=106807
189 Reviewed by Pavel Feldman.
191 Open dedicated worker inspector 600x600 by default and remember its size
194 * inspector/front-end/Settings.js:
195 * inspector/front-end/WorkerManager.js:
197 2013-01-14 Kentaro Hara <haraken@chromium.org>
199 [V8] Make an Isolate parameter mandatory in associateObjectWithWrapper()
200 https://bugs.webkit.org/show_bug.cgi?id=106784
202 Reviewed by Adam Barth.
204 No tests. No change in behavior.
206 * bindings/v8/V8DOMWrapper.h:
209 2013-01-14 Kentaro Hara <haraken@chromium.org>
211 [V8] Make an Isolate parameter mandatory in ScriptDebugServer::interruptAndRun()
212 https://bugs.webkit.org/show_bug.cgi?id=106779
214 Reviewed by Adam Barth.
216 This is one of steps to make an Isolate parameter mandatory.
218 No tests. No change in behavior.
220 * bindings/v8/ScriptDebugServer.h:
223 2013-01-14 Kentaro Hara <haraken@chromium.org>
225 [V8] Make an Isolate parameter mandatory in wrap()
226 https://bugs.webkit.org/show_bug.cgi?id=106783
228 Reviewed by Adam Barth.
230 Now it's safe to make an Isolate parameter in wrap().
232 No tests. No change in behavior.
234 * bindings/scripts/CodeGeneratorV8.pm:
236 * bindings/scripts/test/V8/V8Float64Array.h:
238 * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
240 * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
242 * bindings/scripts/test/V8/V8TestEventConstructor.h:
244 * bindings/scripts/test/V8/V8TestEventTarget.h:
246 * bindings/scripts/test/V8/V8TestException.h:
248 * bindings/scripts/test/V8/V8TestInterface.h:
250 * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
252 * bindings/scripts/test/V8/V8TestNamedConstructor.h:
254 * bindings/scripts/test/V8/V8TestNode.h:
256 * bindings/scripts/test/V8/V8TestObj.h:
258 * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
260 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
263 2013-01-14 Tommy Widenflycht <tommyw@google.com>
265 MediaStream API: Update MediaStreamTrack::readyState to match specification
266 https://bugs.webkit.org/show_bug.cgi?id=106781
268 Reviewed by Adam Barth.
270 MediaStreamTrack::readyState now returns a string like the rest of the RTC classes.
272 Existing tests expanded to cover patch.
274 * Modules/mediastream/MediaStream.cpp:
275 (WebCore::processTrack):
276 * Modules/mediastream/MediaStreamTrack.cpp:
277 (WebCore::MediaStreamTrack::readyState):
278 (WebCore::MediaStreamTrack::ended):
280 * Modules/mediastream/MediaStreamTrack.h:
282 * Modules/mediastream/MediaStreamTrack.idl:
284 2013-01-14 Vsevolod Vlasov <vsevik@chromium.org>
286 Web Inspector: Audit Tool's False Positive on Set-Cookie header
287 https://bugs.webkit.org/show_bug.cgi?id=106794
289 Reviewed by Pavel Feldman.
291 Header value is now returned as undefined if there is no such header as it was before regression.
293 Test: http/tests/inspector/audits/set-cookie-header-audit-no-false-positive.html
295 * inspector/front-end/AuditRules.js:
296 (WebInspector.AuditRules.CSSRuleBase.prototype.sheetsCallback): Drive-by fix, callback should be called even when there is no headers.
297 * inspector/front-end/NetworkRequest.js:
298 (WebInspector.NetworkRequest.prototype._headerValue):
300 2013-01-14 Eric Carlson <eric.carlson@apple.com>
302 Do not pass nil when initializing legible output
303 https://bugs.webkit.org/show_bug.cgi?id=106799
305 Reviewed by Jessie Berlin.
307 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
308 (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): -[AVPlayerItemLegibleOutput initWithDependencyFactory:mediaSubtypesForNativeRepresentation:]
309 wants an empty NSArray rather than nil.
311 2013-01-14 Andrey Adaikin <aandrey@chromium.org>
313 Web Inspector: [Canvas] UI: add control buttons for doing the replay steps
314 https://bugs.webkit.org/show_bug.cgi?id=106788
316 Reviewed by Pavel Feldman.
318 Adding UI control buttons for doing the Canvas replay steps.
319 Drive-by: fixed a bug in DataGrid (found by the JSCompiler).
321 * inspector/front-end/CanvasProfileView.js:
322 (WebInspector.CanvasProfileView):
323 (WebInspector.CanvasProfileView.prototype._createControlButton):
324 (WebInspector.CanvasProfileView.prototype._onReplayStepClick):
325 (WebInspector.CanvasProfileView.prototype._onReplayFirstStepClick):
326 (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
327 (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
328 (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
329 (WebInspector.CanvasProfileView.prototype._replayTraceLog):
330 (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
331 (WebInspector.CanvasProfileType.prototype._updateDecorationElement):
332 * inspector/front-end/DOMExtension.js:
333 (Element.prototype.enableStyleClass):
334 * inspector/front-end/DataGrid.js:
335 (WebInspector.DataGrid.prototype.setRootNode):
336 (WebInspector.DataGrid.prototype._startEditingColumnOfDataGridNode):
337 (WebInspector.DataGrid.prototype.moveToNextIfNeeded):
338 (WebInspector.DataGrid.prototype._editingCommitted):
339 (WebInspector.DataGridNode):
340 * inspector/front-end/canvasProfiler.css:
341 (.canvas-replay-image):
342 (.canvas-replay-image.wait):
343 (.canvas-replay-controls):
344 (.canvas-replay-log):
345 (.canvas-control-button):
346 (.canvas-control-button:active):
347 (.canvas-control-button:disabled):
348 (.canvas-control-button img):
349 (.canvas-replay-first-step img):
350 (.canvas-replay-next-step img):
351 (.canvas-replay-prev-step img):
352 (.canvas-replay-last-step img):
354 2013-01-14 Tommy Widenflycht <tommyw@google.com>
356 MediaStream API: Update the track accessors on MediaStream to match the latest specification
357 https://bugs.webkit.org/show_bug.cgi?id=106660
359 Reviewed by Adam Barth.
361 The spec has significantly changed how tracks are accessed from a MediaStream:
362 http://dev.w3.org/2011/webrtc/editor/getusermedia.html
364 In short: the attributes audioTrack/videoTrack that returned special MediaStreamTrackLists have been
365 replaced by the functions getAudioTracks()/getVideoTracks that return standard sequences of
368 Existing tests updated and expanded to cover patch.
371 * GNUmakefile.list.am:
372 * Modules/mediastream/MediaStream.cpp:
373 (WebCore::MediaStream::create):
374 (WebCore::MediaStream::MediaStream):
375 (WebCore::MediaStream::~MediaStream):
376 (WebCore::MediaStream::readyState):
378 (WebCore::MediaStream::addTrack):
379 (WebCore::MediaStream::removeTrack):
380 (WebCore::MediaStream::getTrackById):
381 (WebCore::MediaStream::streamEnded):
382 (WebCore::MediaStream::contextDestroyed):
383 (WebCore::MediaStream::scheduleDispatchEvent):
384 (WebCore::MediaStream::scheduledEventTimerFired):
385 * Modules/mediastream/MediaStream.h:
387 (WebCore::MediaStream::getAudioTracks):
388 (WebCore::MediaStream::getVideoTracks):
389 * Modules/mediastream/MediaStream.idl:
390 * Modules/mediastream/MediaStreamTrackList.cpp: Removed.
391 * Modules/mediastream/MediaStreamTrackList.h: Removed.
392 * Modules/mediastream/MediaStreamTrackList.idl: Removed.
393 * Modules/webaudio/AudioContext.cpp:
394 (WebCore::AudioContext::createMediaStreamSource):
396 * dom/EventTargetFactory.in:
397 * platform/mediastream/MediaStreamDescriptor.h:
398 (WebCore::MediaStreamDescriptor::addAudioComponent):
399 (WebCore::MediaStreamDescriptor::removeAudioComponent):
400 (WebCore::MediaStreamDescriptor::addVideoComponent):
401 (WebCore::MediaStreamDescriptor::removeVideoComponent):
403 2013-01-14 Kentaro Hara <haraken@chromium.org>
405 [V8] Add m_isolate to ScriptController, WorkerScriptController and V8DOMWindowShell
406 https://bugs.webkit.org/show_bug.cgi?id=106771
408 Reviewed by Adam Barth.
410 This is one of the steps to pass an Isolate everywhere.
412 No tests. No change in behavior.
414 * bindings/v8/ScriptController.cpp:
415 (WebCore::ScriptController::ScriptController):
416 (WebCore::ScriptController::windowShell):
417 * bindings/v8/ScriptController.h:
419 * bindings/v8/V8DOMWindowShell.cpp:
420 (WebCore::V8DOMWindowShell::create):
421 (WebCore::V8DOMWindowShell::V8DOMWindowShell):
422 (WebCore::V8DOMWindowShell::initializeIfNeeded):
423 (WebCore::V8DOMWindowShell::installDOMWindow):
424 * bindings/v8/V8DOMWindowShell.h:
426 * bindings/v8/V8Initializer.cpp:
427 (WebCore::V8Initializer::initializeMainThreadIfNeeded):
428 (WebCore::V8Initializer::initializeWorker):
429 * bindings/v8/V8Initializer.h:
431 * bindings/v8/WorkerScriptController.cpp:
432 (WebCore::WorkerScriptController::WorkerScriptController):
433 (WebCore::WorkerScriptController::initializeContextIfNeeded):
435 2013-01-14 Alexander Pavlov <apavlov@chromium.org>
437 Web Inspector: [Styles] Color names parsed inside "background-image" values
438 https://bugs.webkit.org/show_bug.cgi?id=106770
440 Reviewed by Pavel Feldman.
442 Test: inspector/styles/url-color-swatch.html
444 Spaces were not allowed in url(...) CSS property values.
446 * inspector/front-end/StylesSidebarPane.js:
448 2013-01-14 Kentaro Hara <haraken@chromium.org>
450 [V8] Pass an Isolate to associateObjectWithWrapper()
451 https://bugs.webkit.org/show_bug.cgi?id=106773
453 Reviewed by Adam Barth.
455 In preparation for making an Isolate parameter mandatory
456 in associateObjectWithWrapper(), this patch passes an
457 Isolate to associateObjectWithWrapper().
459 No tests. No change in behavior.
461 * bindings/v8/custom/V8ArrayBufferCustom.cpp:
462 (WebCore::V8ArrayBuffer::constructorCallbackCustom):
463 * bindings/v8/custom/V8ArrayBufferViewCustom.h:
464 (WebCore::wrapArrayBufferView):
465 (WebCore::constructWebGLArray):
466 * bindings/v8/custom/V8AudioContextCustom.cpp:
467 (WebCore::V8AudioContext::constructorCallbackCustom):
468 * bindings/v8/custom/V8DOMFormDataCustom.cpp:
469 (WebCore::V8DOMFormData::constructorCallbackCustom):
470 * bindings/v8/custom/V8DataViewCustom.cpp:
471 (WebCore::V8DataView::constructorCallbackCustom):
472 * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
473 (WebCore::v8HTMLImageElementConstructorCallback):
474 * bindings/v8/custom/V8IntentCustom.cpp:
475 (WebCore::V8Intent::constructorCallbackCustom):
476 * bindings/v8/custom/V8MessageChannelCustom.cpp:
477 (WebCore::V8MessageChannel::constructorCallbackCustom):
478 * bindings/v8/custom/V8MutationObserverCustom.cpp:
479 (WebCore::V8MutationObserver::constructorCallbackCustom):
480 * bindings/v8/custom/V8WebKitPointCustom.cpp:
481 (WebCore::V8WebKitPoint::constructorCallbackCustom):
482 * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
483 (WebCore::V8XMLHttpRequest::constructorCallbackCustom):
485 2013-01-14 Kentaro Hara <haraken@chromium.org>
487 [V8] Call Isolate::GetCurrent() in a callback from WebCore
488 https://bugs.webkit.org/show_bug.cgi?id=106766
490 Reviewed by Adam Barth.
492 The objective is to pass an Isolate everywhere.
493 Given that a callback from WebCore is an entry point to V8,
494 we can call Isolate::GetCurrent() at the head of the callback
495 and pass it to other places. (In practice, handleEvent() is
496 the only callback used in the current WebKit.)
498 No tests. No change in behavior.
500 * bindings/scripts/CodeGeneratorV8.pm:
501 (GenerateCallbackImplementation):
503 * bindings/scripts/test/V8/V8TestCallback.cpp:
504 (WebCore::V8TestCallback::callbackWithNoParam):
505 (WebCore::V8TestCallback::callbackWithClass1Param):
506 (WebCore::V8TestCallback::callbackWithClass2Param):
507 (WebCore::V8TestCallback::callbackWithStringList):
508 (WebCore::V8TestCallback::callbackWithBoolean):
509 (WebCore::V8TestCallback::callbackRequiresThisToPass):
511 2013-01-14 Tommy Widenflycht <tommyw@google.com>
513 MediaStream API: Change MediaStream::readyState to an boolean attribute called ended.
514 https://bugs.webkit.org/show_bug.cgi?id=106568
516 Reviewed by Adam Barth.
518 See specification: http://dev.w3.org/2011/webrtc/editor/getusermedia.html
520 Existings tests updated to cover patch.
522 * Modules/mediastream/LocalMediaStream.cpp:
523 (WebCore::LocalMediaStream::stop):
524 * Modules/mediastream/MediaStream.cpp:
525 (WebCore::MediaStream::ended):
526 (WebCore::MediaStream::streamEnded):
527 * Modules/mediastream/MediaStream.h:
529 (WebCore::MediaStream::isLocal):
530 * Modules/mediastream/MediaStream.idl:
531 * Modules/mediastream/MediaStreamTrackList.cpp:
532 (WebCore::MediaStreamTrackList::add):
533 (WebCore::MediaStreamTrackList::remove):
535 2013-01-14 Alexander Pavlov <apavlov@chromium.org>
537 Web Inspector: [Styles] HTML color names not converted to RGB/HEX/HSL when "Color format" feature used
538 https://bugs.webkit.org/show_bug.cgi?id=106767
540 Reviewed by Vsevolod Vlasov.
542 We used to render named colors as names regardless of the selected color format option.
544 * inspector/front-end/StylesSidebarPane.js:
545 (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
547 2013-01-14 Andrei Bucur <abucur@adobe.com>
549 Crash caused by incomplete cleanup of regions information for anonymous block
550 https://bugs.webkit.org/show_bug.cgi?id=106191
552 Reviewed by Abhishek Arya.
554 When an anonymous block is no longer required it is removed from the render tree and deleted. For example, this can happen when an anonymous block children change
555 from inlines to blocks. The patch updates the removeLeftoverAnonymousBlock function to delete the flow thread information attached to the obsolete anonymous block.
556 The removeFromRenderFlowThread() function is recursive and it needs to be called after the anonymous block children were reparented and the child list cleared.
557 I've also placed the children reset operation before clearing the parent because the latter also deletes the inRenderFlowThread flag from the object and it makes
558 flow thread ownership detection impossible.
560 Tests: fast/regions/remove-leftover-anon-block-crash.html
562 * rendering/RenderBlock.cpp:
563 (WebCore::RenderBlock::removeLeftoverAnonymousBlock):
565 2013-01-14 Kentaro Hara <haraken@chromium.org>
567 [V8] Make an Isolate parameter mandatory in v8DateOrNull()
568 https://bugs.webkit.org/show_bug.cgi?id=106765
570 Reviewed by Adam Barth.
572 This is one of the efforts to kill all optional Isolate parameters.
574 No tests. No change in behavior.
576 * bindings/v8/V8Binding.h:
577 (WebCore::v8DateOrNull):
579 2013-01-14 Pablo Flouret <pablof@motorola.com>
581 Allow nesting of at-rules
582 https://bugs.webkit.org/show_bug.cgi?id=106696
584 Reviewed by Allan Sandfeld Jensen.
586 http://dev.w3.org/csswg/css3-conditional/ introduces the
587 concept of grouping rules, and allows for them to be nested. In
588 particular, this change affects @media (and is needed for @supports as
591 Test: fast/css/nested-at-rules.html
593 * css/CSSGrammar.y.in:
594 Move media to the block_valid_rule list.
597 (WebCore::RuleSet::addRegionRule):
598 (WebCore::RuleSet::addChildRules):
599 (WebCore::RuleSet::addRulesFromSheet):
601 Rip out the rule-adding loop into a new method, for added
602 cleanliness and recursing.
604 2013-01-14 Eugene Klyuchnikov <eustas@chromium.org>
606 Web Inspector: [Network] Add domain column
607 https://bugs.webkit.org/show_bug.cgi?id=106757
609 Reviewed by Pavel Feldman.
611 Adding new column will ease domain tracking / sorting.
613 * inspector/front-end/NetworkPanel.js: Added column.
614 * inspector/front-end/NetworkRequest.js:
615 (WebInspector.NetworkRequest.prototype.get domain): Added getter.
617 2013-01-14 Qiankun Miao <qiankun.miao@intel.com>
619 Fix a typo error in the comments in PlatformContextSkia.h
620 https://bugs.webkit.org/show_bug.cgi?id=105612
622 Reviewed by Stephen White.
624 "If false we're rendering to a GraphicsContext for a web page, if false
625 we're not (as is the case when rendering to a canvas object)." is
626 self-contradictory. The second "flase" in the comments should be
627 "true". If true, we're rendering to an ImageBuffer which has a canvas
630 * platform/graphics/skia/PlatformContextSkia.h:
631 (PlatformContextSkia):
633 2013-01-14 Ilya Tikhonovsky <loislo@chromium.org>
635 Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 3/3
636 https://bugs.webkit.org/show_bug.cgi?id=106764
638 Reviewed by Vsevolod Vlasov.
640 Last three classes with not instrumented members were fixed.
642 * css/CSSGroupingRule.cpp:
643 (WebCore::CSSGroupingRule::reportMemoryUsage):
644 * css/StyleScopeResolver.cpp:
645 (WebCore::StyleScopeResolver::reportMemoryUsage):
646 * loader/cache/CachedResourceLoader.cpp:
647 (WebCore::CachedResourceLoader::reportMemoryUsage):
649 2013-01-10 Ilya Tikhonovsky <loislo@chromium.org>
651 Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 2/N
652 https://bugs.webkit.org/show_bug.cgi?id=106546
654 Reviewed by Vsevolod Vlasov.
656 Many nontrivial class members were added into reportMemoryUsage methods.
658 * bindings/v8/V8PerIsolateData.cpp:
659 (WebCore::V8PerIsolateData::reportMemoryUsage):
660 * css/CSSMediaRule.cpp:
661 (WebCore::CSSMediaRule::reportMemoryUsage):
662 * css/CSSProperty.cpp:
663 (WebCore::CSSProperty::reportMemoryUsage):
664 * css/CSSStyleSheet.cpp:
665 (WebCore::CSSStyleSheet::reportMemoryUsage):
667 (WebCore::MediaList::reportMemoryUsage):
669 (WebCore::RuleData::reportMemoryUsage):
670 (WebCore::RuleSet::reportMemoryUsage):
671 (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
672 * css/StyleResolver.cpp:
673 (WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
674 (WebCore::StyleResolver::reportMemoryUsage):
675 * css/StyleSheetContents.cpp:
676 (WebCore::StyleSheetContents::reportMemoryUsage):
678 (WebCore::TreeScope::reportMemoryUsage):
679 * inspector/HeapGraphSerializer.cpp:
680 (WebCore::HeapGraphSerializer::reportMemoryUsage):
681 * inspector/InspectorMemoryAgent.cpp:
682 * inspector/InspectorProfilerAgent.cpp:
683 (WebCore::InspectorProfilerAgent::reportMemoryUsage):
684 * inspector/MemoryInstrumentationImpl.cpp:
685 (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
686 * loader/DocumentLoader.cpp:
687 (WebCore::DocumentLoader::reportMemoryUsage):
688 * loader/FrameLoader.cpp:
689 (WebCore::FrameLoader::reportMemoryUsage):
690 * loader/MainResourceLoader.cpp:
691 (WebCore::MainResourceLoader::reportMemoryUsage):
692 * loader/Prerenderer.cpp:
693 (WebCore::Prerenderer::reportMemoryUsage):
694 * loader/ResourceLoader.cpp:
695 (WebCore::ResourceLoader::reportMemoryUsage):
696 * loader/cache/CachedImage.cpp:
697 (WebCore::CachedImage::reportMemoryUsage):
699 (WebCore::Page::reportMemoryUsage):
701 2013-01-13 Levi Weintraub <leviw@chromium.org>
703 Unreviewed gardening. Rolling out r139537. It broke platforms without sub-pixel layout.
706 (WebCore::Element::offsetWidth):
707 (WebCore::Element::offsetHeight):
708 (WebCore::Element::clientWidth):
709 (WebCore::Element::clientHeight):
710 * rendering/RenderObject.h:
711 (WebCore::adjustLayoutUnitForAbsoluteZoom):
712 * rendering/style/RenderStyle.h:
713 (WebCore::adjustLayoutUnitForAbsoluteZoom):
715 2013-01-13 Dima Gorbik <dgorbik@apple.com>
717 Styling disappears from the cue that's being styled by ::cue pseudo element
718 https://bugs.webkit.org/show_bug.cgi?id=106723
720 Reviewed by Antti Koivisto.
722 Fixes a regression caused by r138966. Setting a pseudoId in TextTrackCue::updateDisplayTree for m_allDocumentNodes
723 was triggering recalculating styles the next run loop. Now when this was removed we append the WebVTT tree after its children have
724 been marked by markFutureAndPastNodes so that correct styles are set within this append call.
726 Test: media/track/track-css-cue-lifetime.html
728 * html/track/TextTrackCue.cpp:
729 (WebCore::TextTrackCue::markFutureAndPastNodes): changing the type of the first argument because DocumentFragment is not a subclass
731 (WebCore::TextTrackCue::updateDisplayTree): appending the WebVTT rendering tree after its children have been marked properly.
732 * html/track/TextTrackCue.h:
735 2013-01-12 David Grogan <dgrogan@chromium.org>
737 IndexedDB: Provide LevelDB with IDBEnv instead of Env::Default
738 https://bugs.webkit.org/show_bug.cgi?id=106135
740 Reviewed by Tony Chang.
742 IDBEnv only changes the name of the histogram where errors are logged.
744 * platform/leveldb/LevelDBDatabase.cpp:
745 (WebCore::LevelDBDatabase::destroy):
746 (WebCore::LevelDBDatabase::open):
747 (WebCore::LevelDBDatabase::openInMemory):
749 2013-01-12 Gavin Peters <gavinp@chromium.org>
751 Regression(r119759): Heap-use-after-free in webkit_glue::WebURLLoaderImpl::Context::OnReceivedResponse
752 https://bugs.webkit.org/show_bug.cgi?id=103563
754 A subresource could receive a body on a 404 if its call to CachedResource::error() resulted in a nested message loop.
755 That caused a crash when data was received, as the Subresource was in the Finished state already. Now when receiving
756 data we ignore these bodies, avoiding the crash.
758 Reviewed by Nate Chapin.
760 No new tests in WebKit, since it required a nested message loop which isn't present in chromium DumpRender tree.
761 There's a Chrome side browser test, see https://codereview.chromium.org/11778083/
763 * loader/SubresourceLoader.cpp:
764 (WebCore::SubresourceLoader::checkForHTTPStatusCodeError):
766 2013-01-12 Robert Hogan <robert@webkit.org>
768 Available height should respect min and max height
769 https://bugs.webkit.org/show_bug.cgi?id=106479
771 Reviewed by Ojan Vafai.
773 When calculating a relative positioned block's offset as a percentage of its container, respect the min
774 and max height set on the container
776 Tests: fast/block/percent-top-respects-max-height.html
777 fast/block/percent-top-respects-min-height.html
779 * rendering/RenderBox.cpp:
780 (WebCore::RenderBox::availableLogicalHeight):
782 2013-01-12 Victor Carbune <victor@rosedu.org>
784 CC Button doesn't always show up
785 https://bugs.webkit.org/show_bug.cgi?id=106653
787 Reviewed by Eric Carlson.
789 Added extra checks to existing test.
791 * html/shadow/MediaControls.cpp:
792 (WebCore::MediaControls::closedCaptionTracksChanged):
793 Enforced visibility of captions button whenever the track list changes.
795 * html/shadow/MediaControls.h:
798 2013-01-11 Dan Beam <dbeam@chromium.org>
800 [clean up] Remove HTMLFormElement::AutocompleteResultError in favor of more specific Error reasons
801 https://bugs.webkit.org/show_bug.cgi?id=106610
803 Reviewed by Darin Fisher.
805 No new tests (none needed).
807 * html/HTMLFormElement.cpp:
808 (WebCore::HTMLFormElement::finishRequestAutocomplete): Removed handling of AutocompleteResultError.
809 * html/HTMLFormElement.h: Removed HTMLFormElement::AutocompleteResultError in favor of more specific errors.
811 2013-01-10 Filip Pizlo <fpizlo@apple.com>
813 JITThunks should not compile only because of luck
814 https://bugs.webkit.org/show_bug.cgi?id=105696
816 Rubber stamped by Sam Weinig.
818 All .cpp files that use the JSC internal API must now transitively include
819 Operations.h, and none of the major JSC headers do it for you to avoid
820 circularity. WebCore doesn't have to worry about circularity with JSC, so
821 this changes all of the major WebCore JSC base headers to include
824 * bindings/js/BindingState.h:
825 * bindings/js/JSArrayBufferViewHelper.h:
826 * bindings/js/JSCustomXPathNSResolver.h:
827 * bindings/js/JSDOMBinding.h:
828 * bindings/js/JSDOMGlobalObject.h:
829 * bindings/js/JSDictionary.h:
830 * bindings/js/JSMessagePortCustom.h:
831 * bindings/js/JSNodeFilterCondition.h:
832 * bindings/js/ScriptValue.h:
833 * bindings/js/ScriptWrappable.h:
834 * bindings/js/SerializedScriptValue.cpp:
835 * bridge/c/c_utility.h:
836 * bridge/jsc/BridgeJSC.h:
838 * html/HTMLCanvasElement.cpp:
839 * html/HTMLImageLoader.cpp:
840 * plugins/efl/PluginViewEfl.cpp:
841 * xml/XMLHttpRequest.cpp:
843 2013-01-11 Emil A Eklund <eae@chromium.org>
845 offsetWidth/height incorrect for images when zoomed
846 https://bugs.webkit.org/show_bug.cgi?id=106624
848 Reviewed by Levi Weintraub.
850 offsetWidth and height are incorrect for images at certain zoom
851 levels due to flooring the values ones adjusted for zoom.
852 By rounding the value instead we avoid the problem and return
855 Test: fast/images/zoomed-offset-size.html
858 (WebCore::Element::offsetWidth):
859 (WebCore::Element::offsetHeight):
860 (WebCore::Element::clientWidth):
861 (WebCore::Element::clientHeight):
862 Change to round (as opposed to floor) the zoom adjusted value.
864 * rendering/RenderObject.h:
865 (WebCore::adjustLayoutUnitForAbsoluteZoom):
866 * rendering/style/RenderStyle.h:
867 (WebCore::adjustLayoutUnitForAbsoluteZoom):
868 Add LayoutUnit version of adjustForAbsoluteZoom to avoid float
871 2013-01-11 Ojan Vafai <ojan@chromium.org>
873 Fixed width overrides intrinsic min-width/max-width for text inputs and listboxes
874 https://bugs.webkit.org/show_bug.cgi?id=106675
876 Reviewed by Emil A Eklund.
878 Implement computeIntrinsicLogicalWidths so that RenderBox::computeLogicalWidthInRegionUsing
879 can get the correct intrinsic sizes instead of the preferred sizes.
881 Test: fast/forms/select/listbox-intrinsic-min-width-applies-with-fixed-width.html
883 * rendering/RenderListBox.cpp:
884 (WebCore::RenderListBox::computeIntrinsicLogicalWidths):
886 (WebCore::RenderListBox::computePreferredLogicalWidths):
887 * rendering/RenderListBox.h:
889 * rendering/RenderTextControl.cpp:
890 (WebCore::RenderTextControl::computeIntrinsicLogicalWidths):
892 (WebCore::RenderTextControl::computePreferredLogicalWidths):
893 * rendering/RenderTextControl.h:
896 2013-01-10 Ojan Vafai <ojan@chromium.org>
898 Setting width overrides intrinsic min-width/max-width on flexboxes and their subclasses
899 https://bugs.webkit.org/show_bug.cgi?id=106617
901 Reviewed by Tony Chang.
903 Override computeIntrinsicLogicalWidths for all RenderFlexibleBox and RenderDeprecatedFlexibleBox
904 classes that override computePreferredLogicalWidths so that RenderBox can use
905 computeIntrinsicLogicalWidths in order to get the correct intrinsic values.
907 Tests: css3/flexbox/intrinsic-min-width-applies-with-fixed-width.html
908 fast/flexbox/intrinsic-min-width-applies-with-fixed-width.html
909 fast/forms/select/intrinsic-min-width-applies-with-fixed-width.html
911 * rendering/RenderBox.cpp:
912 (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
913 fit-content needs to use the intrinsic sizes not the preferred sizes
914 since a fixed width overrides the preferred size.
915 As best I can tell, the sizesLogicalWidthToFitContent codepath can keep
916 using preferred widths, which are considerably faster, since that's only used
917 computing width values. Added a clause to that if-statement to make this more
920 * rendering/RenderDeprecatedFlexibleBox.cpp:
921 (WebCore::RenderDeprecatedFlexibleBox::computeIntrinsicLogicalWidths):
922 (WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):
923 * rendering/RenderDeprecatedFlexibleBox.h:
924 (RenderDeprecatedFlexibleBox):
925 * rendering/RenderFlexibleBox.cpp:
926 (WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths):
928 (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
929 * rendering/RenderFlexibleBox.h:
930 * rendering/RenderMenuList.cpp:
931 (WebCore::RenderMenuList::computeIntrinsicLogicalWidths):
933 (WebCore::RenderMenuList::computePreferredLogicalWidths):
934 * rendering/RenderMenuList.h:
936 * rendering/RenderSlider.cpp:
937 (WebCore::RenderSlider::computeIntrinsicLogicalWidths):
939 (WebCore::RenderSlider::computePreferredLogicalWidths):
940 * rendering/RenderSlider.h:
942 No logic changes in any of these computeIntrinsic methods. Just moving
943 the code over from the computePreferred methods.
945 2013-01-11 Tony Gentilcore <tonyg@chromium.org>
947 Move HTMLTokenTypes to its own file
948 https://bugs.webkit.org/show_bug.cgi?id=106722
950 Reviewed by Levi Weintraub.
952 Also mark AtomicHTMLToken ctor as explicit.
954 No new tests because no new functionality.
956 * GNUmakefile.list.am:
959 * WebCore.vcproj/WebCore.vcproj:
960 * WebCore.xcodeproj/project.pbxproj:
961 * html/parser/HTMLToken.h:
962 (WebCore::AtomicHTMLToken::AtomicHTMLToken):
963 * html/parser/HTMLTokenTypes.h: Added.
967 (WebCore::HTMLTokenTypes::DoctypeData::DoctypeData):
969 2013-01-11 Elliott Sprehn <esprehn@chromium.org>
971 No need to initialize RefPtrs to 0 in ElementRareData
972 https://bugs.webkit.org/show_bug.cgi?id=106717
974 Reviewed by Ryosuke Niwa.
976 RefPtrs initialize themself to null, so there's no reason
977 to do it manually. This was code leftover from when
978 PseudoElements were stored in bare ptrs instead of in
981 No new tests, just refactoring.
983 * dom/ElementRareData.h:
984 (WebCore::ElementRareData::ElementRareData):
986 2013-01-11 Huang Dongsung <luxtella@company100.net>
988 [TexMap] Rename current[Transform|Opacity|Filters] in TextureMapperLayer.
989 https://bugs.webkit.org/show_bug.cgi?id=105760
991 Reviewed by Noam Rosenthal.
993 TextureMapperLayer has two transform members: an original value and a
994 changeable value. The changeable value would be changed by animations.
995 This patch puts 'current' prefix on the changeable value to clarify
996 its purpose. Opacity and filters ditto.
998 No new tests. Refactoring only.
1000 * platform/graphics/texmap/TextureMapperLayer.cpp:
1001 (WebCore::TextureMapperLayer::computeTransformsRecursive):
1002 (WebCore::TextureMapperLayer::paintSelf):
1003 (WebCore::TextureMapperLayer::paintSelfAndChildren):
1004 (WebCore::TextureMapperLayer::intermediateSurfaceRect):
1005 (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
1006 (WebCore::TextureMapperLayer::isVisible):
1007 (WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
1008 (WebCore::TextureMapperLayer::paintRecursive):
1009 (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
1010 (WebCore::TextureMapperLayer::syncAnimations):
1011 (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
1012 * platform/graphics/texmap/TextureMapperLayer.h:
1013 (WebCore::TextureMapperLayer::TextureMapperLayer):
1014 (TextureMapperLayer):
1015 (WebCore::TextureMapperLayer::State::State):
1017 2013-01-11 Tony Gentilcore <tonyg@chromium.org>
1019 Move constructTreeFromHTMLToken into HTMLDocumentParser
1020 https://bugs.webkit.org/show_bug.cgi?id=106694
1022 Reviewed by Adam Barth.
1024 This way it will sit parallel to a new constructTreeFromCompactHTMLToken method.
1026 No new tests because no new functionality.
1028 * html/parser/HTMLDocumentParser.cpp:
1029 (WebCore::HTMLDocumentParser::pumpTokenizer):
1030 (WebCore::HTMLDocumentParser::constructTreeFromHTMLToken):
1032 * html/parser/HTMLDocumentParser.h:
1033 * html/parser/HTMLTreeBuilder.cpp:
1034 * html/parser/HTMLTreeBuilder.h:
1037 2013-01-11 Robert Iannucci <iannucci@chromium.org>
1039 Explicitly set msvs_cygwin_shell to true for actions in WebKit
1040 https://bugs.webkit.org/show_bug.cgi?id=106706
1042 Reviewed by Tony Chang.
1044 Currently, msvs_cygwin_shell is set to 1 by default. This patch
1045 explicitly sets it on the actions which will break if msvs_cygwin_shell
1046 were set to 0. This is in preparation for changing the default value of
1047 msvs_cygwin_shell, which in turn is in preparation of the removal of
1048 cygwin as a buld-system requirement.
1050 Since this change will have no semantic effect, no new tests are
1053 * WebCore.gyp/WebCore.gyp:
1055 2013-01-11 Joshua Bell <jsbell@chromium.org>
1057 IndexedDB: IDBTransaction should manage lifetime of IDBRequests
1058 https://bugs.webkit.org/show_bug.cgi?id=106678
1060 Reviewed by Tony Chang.
1062 Ensure reference count of IDBRequests don't bounce off zero if there are no script
1063 references are while the events are arriving.
1065 No new tests - no detectable behavior changes.
1067 * Modules/indexeddb/IDBRequest.cpp:
1068 (WebCore::IDBRequest::create): Register with transaction (which now takes a ref) here to...
1069 (WebCore::IDBRequest::IDBRequest): ...avoid having to relax adoption requirements here.
1070 * Modules/indexeddb/IDBTransaction.cpp: Keep RefPtr<>s to outstanding requests.
1071 (WebCore::IDBTransaction::~IDBTransaction):
1072 (WebCore::IDBTransaction::abort):
1073 (WebCore::IDBTransaction::onAbort):
1074 * Modules/indexeddb/IDBTransaction.h:
1076 2013-01-11 James Simonsen <simonjam@chromium.org>
1078 [Resource Timing] XMLHttpRequests should have initiator type 'xmlhttprequest'
1079 https://bugs.webkit.org/show_bug.cgi?id=106409
1081 Reviewed by Nate Chapin.
1083 The initiator is passed through ThreadableLoaderOptions to the CachedResourceRequest. This is
1084 optional, so other users of ThreadableLoader will have the default initiator of 'request'. Note
1085 that synchronous XHRs don't show up in the Resource Timing buffer yet.
1087 Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_initiator_types.html
1089 * loader/DocumentThreadableLoader.cpp:
1090 (WebCore::DocumentThreadableLoader::loadRequest):
1091 * loader/ThreadableLoader.h:
1092 (ThreadableLoaderOptions):
1093 * loader/cache/CachedResourceRequestInitiators.cpp:
1094 (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
1095 * loader/cache/CachedResourceRequestInitiators.h:
1096 (CachedResourceRequestInitiators):
1097 * xml/XMLHttpRequest.cpp:
1098 (WebCore::XMLHttpRequest::createRequest):
1100 2013-01-11 James Simonsen <simonjam@chromium.org>
1102 Restore old semantics to webkitRequestAnimationFrame callbacks
1103 https://bugs.webkit.org/show_bug.cgi?id=106697
1105 Reviewed by James Robinson.
1107 Sites that use GWT <= 2.4 are buggy and rely on Date.now()-like callback values.
1108 We'll restore that behavior to the prefixed version of webkitRequestAnimationFrame.
1109 requestAnimationFrame will continue to follow the spec.
1111 Test: fast/animation/request-animation-frame-prefix.html
1113 * dom/RequestAnimationFrameCallback.h:
1114 (RequestAnimationFrameCallback):
1115 * dom/ScriptedAnimationController.cpp:
1116 (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
1117 * page/DOMWindow.cpp:
1118 (WebCore::DOMWindow::requestAnimationFrame):
1120 (WebCore::DOMWindow::webkitRequestAnimationFrame):
1123 * page/DOMWindow.idl:
1125 2013-01-11 Sheriff Bot <webkit.review.bot@gmail.com>
1127 Unreviewed, rolling out r139044.
1128 http://trac.webkit.org/changeset/139044
1129 https://bugs.webkit.org/show_bug.cgi?id=106702
1131 Caused various scrolling anomolies on Mac with drag and drop
1132 (Requested by smfr on #webkit).
1134 * page/AutoscrollController.cpp:
1135 (WebCore::AutoscrollController::AutoscrollController):
1136 (WebCore::AutoscrollController::autoscrollTimerFired):
1137 * page/AutoscrollController.h:
1139 (AutoscrollController):
1140 * page/EventHandler.cpp:
1141 (WebCore::EventHandler::updateDragAndDrop):
1142 * rendering/RenderBox.cpp:
1144 (WebCore::RenderBox::autoscroll):
1145 * rendering/RenderBox.h:
1147 * rendering/RenderLayer.cpp:
1148 (WebCore::RenderLayer::autoscroll):
1149 * rendering/RenderLayer.h:
1151 * rendering/RenderListBox.cpp:
1152 (WebCore::RenderListBox::autoscroll):
1153 * rendering/RenderListBox.h:
1155 * rendering/RenderTextControlSingleLine.cpp:
1156 (WebCore::RenderTextControlSingleLine::autoscroll):
1157 * rendering/RenderTextControlSingleLine.h:
1158 (RenderTextControlSingleLine):
1160 2013-01-11 Rafael Weinstein <rafaelw@chromium.org>
1162 Prevent HTMLPreloadScanner from fetching resources inside <template>
1163 https://bugs.webkit.org/show_bug.cgi?id=106687
1165 Reviewed by Adam Barth.
1167 This patch adds a simple counter to the preload scanner which increments on template start
1168 tag and decrements on template element. It only fetchs resources when the counter is at zero
1169 (i.e. for elements not contained by a template element).
1171 Test re-enabled within fast/dom/HTMLTemplateElement/inertContents.html
1173 * html/parser/HTMLPreloadScanner.cpp:
1174 (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
1175 (WebCore::HTMLPreloadScanner::processToken):
1176 * html/parser/HTMLPreloadScanner.h:
1177 (HTMLPreloadScanner):
1179 2013-01-11 Tony Gentilcore <tonyg@chromium.org>
1181 We should be able to checkpoint and restore the HTMLTokenizer across threads
1182 https://bugs.webkit.org/show_bug.cgi?id=106597
1184 Based on patch by Adam Barth.
1186 This has the ability to create a checkpoint any time the parser is blocked on a script.
1187 We clear m_appropriateEndTagName after each end tag is flushed so that the ASSERT in
1188 canCreateCheckpoint() will pass.
1190 Reviewed by Adam Barth.
1192 No new tests because no new functionality.
1194 * html/parser/HTMLDocumentParser.cpp:
1195 (WebCore::HTMLDocumentParser::HTMLDocumentParser):
1196 (WebCore::HTMLDocumentParser::pumpTokenizer):
1197 * html/parser/HTMLDocumentParser.h:
1199 (HTMLDocumentParser):
1200 * html/parser/HTMLTokenizer.cpp:
1202 (WebCore::HTMLTokenizer::canCreateCheckpoint):
1203 (WebCore::HTMLTokenizer::createCheckpoint):
1204 (WebCore::HTMLTokenizer::restoreFromCheckpoint):
1205 * html/parser/HTMLTokenizer.h:
1208 (WebCore::HTMLTokenizer::Checkpoint::Checkpoint):
1209 * xml/parser/MarkupTokenizerBase.h:
1210 (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::InputStreamPreprocessor):
1211 (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::skipNextNewLine):
1212 (InputStreamPreprocessor):
1213 (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::reset):
1215 2013-01-11 Tony Chang <tony@chromium.org>
1217 [chromium] Don't regenerate all bindings when any idl file changes
1218 https://bugs.webkit.org/show_bug.cgi?id=106604
1220 Reviewed by Kentaro Hara.
1222 Currently, every idl file is a dependency of generating the supplemental dependency map
1223 and generating bindings is a dependency of the map. This means that touching any idl file
1224 causes us to regenerate all the bindings.
1226 Change it so that generating bindings only depends on the idl files that have Supplemental= in them.
1227 We only have 24 idl files with Supplemental (3.7% of the 638 idl files in WebCore) so modifying
1228 any of those will cause all bindings to be regenerated.
1230 If you add or remove a new idl file, you have to rerun gyp which will fix up any dependencies.
1231 If you edit an existing file and add Supplemental= to it, you will now need to rerun gyp_{webkit,chromium}.
1232 I think that's a reasonable tradeoff since it seems highly unlikely that you would adding Supplemental=
1233 to an existing file without renaming it. The bots will always be fine because they always run
1236 No new tests, this is a build only change.
1238 * WebCore.gyp/WebCore.gyp: Remove <(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp, which was causing
1239 the full rebuild. The step to generate this file is still a hard dependency so it will still be generated and
1240 used by generate-bindings.pl. Also remove <@(webcore_test_support_idl_files). This was saying we should regenerate
1241 all bindings if a test idl file changed. That doesn't make sense.
1242 * WebCore.gyp/scripts/supplemental_idl_files.py: Added.
1245 2013-01-11 Alexandru Chiculita <achicu@adobe.com>
1247 Element is displayed behind a composited layer when clipping is used on a previous element
1248 https://bugs.webkit.org/show_bug.cgi?id=104981
1250 Reviewed by Simon Fraser.
1252 RenderLayerCompositor::computeCompositingRequirements uses the local bounding box of the layers to optimize the number of composited
1253 layers that are created. That's needed in order to make sure that composited layers that are displayed behind non-composited
1254 layers are correctly promoting the layers in front to be composited. Otherwise the non-composited layers are rendered
1255 in the parent composited layer, displaying behind the other composited layers. That might be wrong as the correct paint order might not be
1258 In order to make animations work, there's a flag that will disable that optimization. That's because the animations run in the platform
1259 layer and the platform layer doesn't know about the layers that are not promoted to composited layers. When the overlapping of the layers
1260 is computed it just uses the start or the stop state, but no intermediate states. For that reason, all the 'top' layers in front of animated
1261 elements will become composited.
1263 When an animation has a clipping rectangle, then we know for sure that the animation is going to be contained inside the clip area, so WebKit
1264 uses the bounding box of the clipping area to detect the overlapping layers, so there's no need to disable the optimization in that case.
1266 However, if there is a different animation displaying behind the clipping container, we cannot safely disable that optimization anymore. That's
1267 because we still don't know what are the intermediate states of that particular animated layer. The bug was that the optimization was re-enabled
1268 anyway, even in this particular case.
1270 In order to fix it, I changed the logic, so that instead of re-enabling the optimization after a clipping container, it will just avoid to propagate
1271 the internal state to the following layers when there's no need to so.
1273 Note that 3D transforms behave like animations for now and disable the optimization. Because of that some of the existing tests ended up
1274 creating more layers than needed. That's because the tests had an overflow area that recreated the issue that this patch fixes, but with
1275 3D transforms instead of animations. 3D transforms will be treated in a separate patch.
1277 Tests: compositing/layer-creation/overlap-animation-clipping.html
1278 compositing/layer-creation/overlap-animation-container.html
1280 * rendering/RenderLayerCompositor.cpp:
1281 (WebCore::RenderLayerCompositor::computeCompositingRequirements):
1283 2013-01-11 Philip Rogers <pdr@google.com>
1285 Skip CachedImage::CreateImage if we don't have image data
1286 https://bugs.webkit.org/show_bug.cgi?id=106156
1288 Reviewed by Nate Chapin.
1290 This patch skips image creation if we do not have image data. This can occur during
1291 cache revalidation when the revalidation request (304 not modified) comes back without
1292 any content. In this revalidation case, the http spec requires that a mimetype not be set
1293 on the response to prevent a cached resource from having a different mimetype
1294 from the revalidated resource. Because revalidation requests do not have a mimetype,
1295 CachedImage::CreateImage() will fail on SVG images. This patch prevents
1296 CachedImage::CreateImage() from being called during revalidation.
1298 No new tests as there are no observable changes from this patch.
1300 * loader/cache/CachedImage.cpp:
1301 (WebCore::CachedImage::data):
1303 2013-01-11 Kentaro Hara <haraken@chromium.org>
1305 Unreviewed. Rebaselined run-bindings-tests.
1307 * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1308 (WebCore::TestEventConstructorV8Internal::attr1AttrGetter):
1309 (WebCore::TestEventConstructorV8Internal::attr2AttrGetter):
1310 * bindings/scripts/test/V8/V8TestException.cpp:
1311 (WebCore::TestExceptionV8Internal::nameAttrGetter):
1312 * bindings/scripts/test/V8/V8TestInterface.cpp:
1313 (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetter):
1314 (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter):
1315 (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter):
1316 * bindings/scripts/test/V8/V8TestObj.cpp:
1317 (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter):
1318 (WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
1319 (WebCore::TestObjV8Internal::stringAttrAttrGetter):
1320 (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter):
1321 (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter):
1322 (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter):
1323 (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
1324 (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter):
1325 (WebCore::TestObjV8Internal::hashAttrGetter):
1326 (WebCore::TestObjV8Internal::conditionalMethod1Callback):
1328 2013-01-11 Levi Weintraub <leviw@chromium.org>
1330 RenderGeometryMap and TransformState disagree with sub-pixel layout and translations
1331 https://bugs.webkit.org/show_bug.cgi?id=106047
1333 Reviewed by Simon Fraser.
1335 Mirror RenderGeometryMap's optimization for integer-translated transforms in TransformState.
1336 This avoids the current behavior where the two can disagree on mappings, since RenderGeometryMap
1337 pixel-snapped later when a translation occurred between two sub-pixel containers.
1339 Test: fast/layers/geometry-map-transform-state-translation-mismatch.html
1341 * platform/graphics/transforms/TransformState.h:
1342 (WebCore::TransformState::setQuad): Clear accumulatedOffset when setting a new quad. Note: this
1343 implementation only works properly when only tracking a quad.
1344 * platform/graphics/transforms/TransformState.cpp:
1345 (WebCore::TransformState::applyTransform): apply integral translations to the accumulatedOffset
1346 for performance and consistency with RenderGeometryMap.
1348 2013-01-11 Abhishek Arya <inferno@chromium.org>
1350 Heap-use-after-free in WebCore::RenderText::computePreferredLogicalWidths
1351 https://bugs.webkit.org/show_bug.cgi?id=95901
1353 Reviewed by Simon Fraser.
1355 Prevent re-entrancy of view layout. Loading of SVG document during font load
1356 causes it to re-enter layout and blowing the style away from underneath.
1358 Test: Go to http://www.speckproducts.com and make sure crash does not happen.
1361 (WebCore::Document::updateLayout):
1363 2013-01-11 Kentaro Hara <haraken@chromium.org>
1365 [V8] Do not create a local handle for a cached v8 string that is returned to V8 immediately
1366 https://bugs.webkit.org/show_bug.cgi?id=106557
1368 Reviewed by Adam Barth.
1370 Currently we are always creating a local handle for a cached
1371 V8 string returned to V8:
1373 Handle<Value> v8String(StringImpl* impl, Isolate* isolate) {
1375 return Local<String>::New(isolate, m_cachedString);
1378 However, we don't need to create a local handle in a case
1379 where it is guaranteed that no V8 object allocation is conducted
1380 before a control flow returns back to V8. In particular, in a case
1381 where a cached V8 string is immediately returned to V8, we don't
1382 need to create a local handle:
1384 Handle<Value> xxxxAttrGetter() {
1386 return v8String(imp->xxxx(), isolate); // This can return a persistent handle safely.
1389 This patch improves performance of div.id by 9.2%.
1391 No tests. No change in behavior.
1393 * bindings/scripts/CodeGeneratorV8.pm:
1394 (GenerateNormalAttrGetter):
1395 (GenerateCallbackImplementation):
1396 (GenerateFunctionCallString):
1398 * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1399 (WebCore::TestEventConstructorV8Internal::attr1AttrGetter):
1400 (WebCore::TestEventConstructorV8Internal::attr2AttrGetter):
1401 * bindings/scripts/test/V8/V8TestException.cpp:
1402 (WebCore::TestExceptionV8Internal::nameAttrGetter):
1403 * bindings/scripts/test/V8/V8TestInterface.cpp:
1404 (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetter):
1405 (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter):
1406 (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter):
1407 * bindings/scripts/test/V8/V8TestObj.cpp:
1408 (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter):
1409 (WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
1410 (WebCore::TestObjV8Internal::stringAttrAttrGetter):
1411 (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter):
1412 (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter):
1413 (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter):
1414 (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
1415 (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter):
1416 (WebCore::TestObjV8Internal::hashAttrGetter):
1417 (WebCore::TestObjV8Internal::conditionalMethod1Callback):
1418 * bindings/v8/V8Binding.h:
1419 (WebCore::v8String):
1420 (WebCore::v8StringOrNull):
1421 (WebCore::v8StringOrUndefined):
1422 * bindings/v8/V8ValueCache.cpp:
1423 (WebCore::StringCache::v8ExternalStringSlow):
1424 * bindings/v8/V8ValueCache.h:
1425 (WebCore::StringCache::v8ExternalString):
1428 2013-01-11 Carlos Garcia Campos <cgarcia@igalia.com>
1430 Unreviewed. Fix make distcheck.
1432 * GNUmakefile.list.am: Add missing header files.
1434 2013-01-11 Xianzhu Wang <wangxianzhu@chromium.org>
1436 RenderLayerCompositor should let ScrollingCoordinator update main thread scrolling reasons after change of layers
1437 https://bugs.webkit.org/show_bug.cgi?id=105652
1439 Reviewed by Simon Fraser.
1441 Let ScrollingCoordinator know the change of ViewportConstrainedNotCompositedReason in time.
1442 By the way moved RenderLayerCompositor::FixedPositionLayerNotCompositedReason to RenderLayer::ViewportConstrainedNotCompositedReason.
1444 Tests: compositing/layer-creation/fixed-position-in-view-dynamic.html
1445 compositing/layer-creation/fixed-position-out-of-view-dynamic.html
1447 * page/scrolling/ScrollingCoordinator.cpp:
1448 (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):
1449 (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
1450 (WebCore::ScrollingCoordinator::mainThreadScrollingReasonsAsText):
1451 * page/scrolling/ScrollingCoordinator.h:
1452 (ScrollingCoordinator):
1453 * page/scrolling/mac/ScrollingCoordinatorMac.h:
1454 (WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintViewportConstrainedObjects):
1455 * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
1456 (WebCore::logThreadedScrollingMode):
1457 * rendering/RenderLayer.cpp:
1458 (WebCore::RenderLayer::RenderLayer):
1459 (WebCore::RenderLayer::paintLayer):
1460 * rendering/RenderLayer.h:
1461 (RenderLayer): Moved RenderLayerCompositor::FixedPositionLayerNotCompositedReason to here and renamed it to ViewportConstrainedNotCompositedReason.
1462 (WebCore::RenderLayer::setViewportConstrainedNotCompositedReason):
1463 (WebCore::RenderLayer::viewportConstrainedNotCompositedReason):
1464 * rendering/RenderLayerCompositor.cpp:
1465 (WebCore::RenderLayerCompositor::updateCompositingLayers):
1466 (WebCore::RenderLayerCompositor::updateBacking): Now updates ViewportConstrainedNotCompositedReason here instead of in computeCompositingRequirements before so that the reason is updated in time.
1467 (WebCore::RenderLayerCompositor::computeCompositingRequirements):
1468 (WebCore::RenderLayerCompositor::needsToBeComposited):
1469 (WebCore::RenderLayerCompositor::requiresCompositingLayer):
1470 (WebCore::RenderLayerCompositor::reasonForCompositing):
1471 (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
1472 (WebCore::RenderLayerCompositor::reportMemoryUsage):
1473 * rendering/RenderLayerCompositor.h:
1474 (RenderLayerCompositor):
1476 2013-01-11 Kenneth Russell <kbr@google.com>
1478 [Chromium] WebGL typed array constructor crashes on exception
1479 https://bugs.webkit.org/show_bug.cgi?id=106308
1481 Reviewed by Kentaro Hara.
1483 Check for empty handles (indicating exception thrown) after calls
1486 Added new case from Khronos typed array conformance tests to
1487 fast/canvas/webgl/array-unit-tests.html.
1489 * bindings/v8/custom/V8ArrayBufferViewCustom.h:
1490 (WebCore::constructWebGLArray):
1491 Check for empty handles after calls into V8 VM.
1493 2013-01-11 Kentaro Hara <haraken@chromium.org>
1495 [V8] Slightly optimize getWrapperFast()
1496 https://bugs.webkit.org/show_bug.cgi?id=106667
1498 Reviewed by Adam Barth.
1500 This patch improves an if condition in getWrapperFast(),
1501 as commented in DOMDataStore.h.
1503 This patch improves performance of div.firstChild from
1504 15.1 ns to 14.0 ns (+7.8%), although I couldn't observe
1505 performance improvement in Dromaeo/dom-traverse.
1507 No tests. No change in behavior.
1509 * bindings/v8/DOMDataStore.h:
1510 (WebCore::DOMDataStore::getWrapperFast):
1512 2013-01-11 Florin Malita <fmalita@chromium.org>
1514 [SVG] Suppress resource rebuilding for unattached and shadow elements
1515 https://bugs.webkit.org/show_bug.cgi?id=106664
1517 Reviewed by Dirk Schulze.
1519 SVGStyledElement::buildPendingResourcesIfNeeded() can be called while cloning a subtree
1520 (as nodes are inserted into the clone, while still detached) or when elements are inserted
1521 into the shadow tree. Both of these cases are problematic for SVGUseElement and can trigger
1522 indirect recursion in SVGUseElement::buildPendingResource.
1524 Since shadow and !inDocument() nodes are of no interest to ID dependents (they cannot be
1525 found by ID in the document), the patch short-circuits buildPendingResource() for these
1528 Test: svg/custom/use-rebuild-resources-crash.svg
1530 * svg/SVGStyledElement.cpp:
1531 (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
1533 2013-01-11 Dominic Mazzoni <dmazzoni@google.com>
1535 AX: Computed hierarchical level is not consistent with aria-level
1536 https://bugs.webkit.org/show_bug.cgi?id=106638
1538 Reviewed by Chris Fleizach.
1540 Make hierarchicalLevel computation 1-based to match the aria-level spec.
1542 Extends an existing test: platform/mac/accessibility/aria-tree.html.
1544 * accessibility/AccessibilityNodeObject.cpp:
1545 (WebCore::AccessibilityNodeObject::hierarchicalLevel):
1546 * accessibility/AccessibilityObject.h:
1547 (AccessibilityObject):
1548 * accessibility/mac/WebAccessibilityObjectWrapper.mm:
1549 (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
1551 2013-01-11 Vsevolod Vlasov <vsevik@chromium.org>
1553 Web Inspector: Workspace should support several projects and should not have temporary UISourceCodes.
1554 https://bugs.webkit.org/show_bug.cgi?id=105856
1556 Reviewed by Pavel Feldman.
1558 Workspace now supports several projects with the networkProject being a main one.
1559 Replaced temporary UISourceCodes with specific projects (debugger and liveedit).
1560 The concept of workspace reset on navigation is now replaced with project reset concept instead.
1561 Introduced snippets project (that is not reset on navigation).
1562 Script mappings are now reset on GlobalObjectCleared event.
1564 * inspector/front-end/BreakpointManager.js:
1565 (WebInspector.BreakpointManager):
1566 (WebInspector.BreakpointManager.prototype._innerSetBreakpoint):
1567 (WebInspector.BreakpointManager.prototype._filteredBreakpointLocations):
1568 (WebInspector.BreakpointManager.prototype.toggleAllBreakpoints):
1569 (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
1570 (WebInspector.BreakpointManager.prototype._projectWillReset.get for):
1571 (WebInspector.BreakpointManager.prototype._projectWillReset):
1572 * inspector/front-end/CSSStyleModel.js:
1573 (WebInspector.CSSStyleModel):
1574 (WebInspector.CSSStyleModel.prototype._inspectedURLChanged):
1575 (WebInspector.CSSStyleModel.prototype._resetSourceMappings):
1576 (WebInspector.CSSStyleModelResourceBinding):
1577 (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResourceURL):
1578 (WebInspector.CSSStyleModelResourceBinding.prototype._reset):
1579 * inspector/front-end/CompilerScriptMapping.js:
1580 (WebInspector.CompilerScriptMapping):
1581 (WebInspector.CompilerScriptMapping.prototype._debuggerReset):
1582 * inspector/front-end/DebuggerScriptMapping.js:
1583 * inspector/front-end/DefaultScriptMapping.js:
1584 (WebInspector.DefaultScriptMapping):
1585 (WebInspector.DefaultScriptMapping.prototype.addScript):
1586 (WebInspector.DefaultScriptMapping.prototype._debuggerReset):
1587 * inspector/front-end/ExtensionServer.js:
1588 (WebInspector.ExtensionServer.prototype._onGetPageResources):
1589 * inspector/front-end/FilteredItemSelectionDialog.js:
1590 (WebInspector.OpenResourceDialog.show):
1591 * inspector/front-end/LiveEditSupport.js:
1592 (WebInspector.LiveEditSupport):
1593 (WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
1594 (WebInspector.LiveEditSupport.prototype._debuggerReset):
1595 * inspector/front-end/NetworkUISourceCodeProvider.js:
1596 (WebInspector.NetworkUISourceCodeProvider):
1597 (WebInspector.NetworkUISourceCodeProvider.prototype._mainFrameNavigated):
1598 (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
1599 (WebInspector.NetworkUISourceCodeProvider.prototype._reset):
1600 * inspector/front-end/ResourceScriptMapping.js:
1601 (WebInspector.ResourceScriptMapping):
1602 (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
1603 (WebInspector.ResourceScriptMapping.prototype._debuggerReset):
1604 * inspector/front-end/RevisionHistoryView.js:
1605 (WebInspector.RevisionHistoryView):
1606 (WebInspector.RevisionHistoryView.prototype._projectWillReset):
1607 * inspector/front-end/SASSSourceMapping.js:
1608 (_bindUISourceCode):
1609 * inspector/front-end/ScriptSnippetModel.js:
1610 (WebInspector.ScriptSnippetModel):
1611 (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
1612 (WebInspector.ScriptSnippetModel.prototype.reset):
1613 * inspector/front-end/ScriptsNavigator.js:
1614 * inspector/front-end/ScriptsPanel.js:
1615 (WebInspector.ScriptsPanel):
1616 (WebInspector.ScriptsPanel.prototype._addUISourceCode):
1617 (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
1618 (WebInspector.ScriptsPanel.prototype._removeUISourceCodes):
1619 (WebInspector.ScriptsPanel.prototype._debuggerWasDisabled):
1620 (WebInspector.ScriptsPanel.prototype._debuggerReset):
1621 (WebInspector.ScriptsPanel.prototype._projectWillReset):
1622 (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
1623 (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
1624 (WebInspector.ScriptsPanel.prototype.showGoToSourceDialog):
1625 * inspector/front-end/SimpleWorkspaceProvider.js:
1626 (WebInspector.SimpleWorkspaceProvider):
1627 (WebInspector.SimpleWorkspaceProvider.prototype.addFile):
1628 (WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
1629 (WebInspector.SimpleWorkspaceProvider.prototype.reset):
1630 * inspector/front-end/StylesSourceMapping.js:
1631 (WebInspector.StylesSourceMapping):
1632 (WebInspector.StylesSourceMapping.prototype._projectWillReset):
1633 * inspector/front-end/TabbedEditorContainer.js:
1634 (WebInspector.TabbedEditorContainer.prototype.reset):
1635 * inspector/front-end/UISourceCode.js:
1636 (WebInspector.UISourceCode.prototype.project):
1637 * inspector/front-end/Workspace.js:
1638 (WebInspector.WorkspaceController):
1639 (WebInspector.WorkspaceController.prototype._inspectedURLChanged):
1640 (WebInspector.Project):
1641 (WebInspector.Project.prototype.name):
1642 (WebInspector.Project.prototype.isServiceProject):
1643 (WebInspector.Project.prototype._reset):
1644 (WebInspector.Workspace):
1645 (WebInspector.Workspace.prototype.uiSourceCodeForURL):
1646 (WebInspector.Workspace.prototype.uiSourceCodeForURI):
1647 (WebInspector.Workspace.prototype.addProject):
1648 (WebInspector.Workspace.prototype.project):
1649 (WebInspector.Workspace.prototype.projects):
1650 (WebInspector.Workspace.prototype.uiSourceCodes):
1651 (WebInspector.Workspace.prototype.projectForUISourceCode):
1652 (WebInspector.Workspace.prototype.requestFileContent):
1653 (WebInspector.Workspace.prototype.setFileContent):
1654 (WebInspector.Workspace.prototype.searchInFileContent):
1655 * inspector/front-end/inspector.js:
1656 * inspector/front-end/utilities.js:
1658 2013-01-11 Eugene Klyuchnikov <eustas@chromium.org>
1660 Web Inspector: [Resources] Make grid columns set configurable.
1661 https://bugs.webkit.org/show_bug.cgi?id=105739
1663 Reviewed by Pavel Feldman.
1665 Added context menu on grid header to hide/show grid columns.
1666 Hidden columns set is persisted.
1668 * inspector/front-end/DataGrid.js:
1669 Fixed show/hide behavior, introduced weight control.
1670 * inspector/front-end/NetworkPanel.js:
1671 Added member to track visibility of columns in detailerd mode. Added
1672 context menu for grid header.
1674 2013-01-11 Andras Becsi <andras.becsi@digia.com>
1676 [Qt] Fix the build if libxslt is not available but libxml2 is
1677 https://bugs.webkit.org/show_bug.cgi?id=106661
1679 Reviewed by Simon Hausmann.
1681 On Linux building the xml parser sources fails if the needed libxslt
1682 dependencies are not installed but libxml2 is.
1684 * WebCore.pri: add libxml2 to pkg-config if not on mac.
1686 2013-01-11 Stephen Chenney <schenney@chromium.org>
1687 Objects can be re-added to the AXObjectCache during removal
1688 https://bugs.webkit.org/show_bug.cgi?id=104171
1690 The problem occurs when a label's corresponding element is a sibling
1691 that precedes it in the render tree, and the corresponding element is
1692 removed. The corresponding element's AX render object is removed, but
1693 then recreated when accessibilityIsIgnored() invokes correspondingControl()
1694 on the label. The corresponding renderer then has an AX render object
1695 that survives beyond the deleted renderer, leading to invalid memory
1698 The solution is to rearrange the calls to delete the renderer's AX
1699 render object only when we are sure it will no longer be required.
1701 Reviewed by Simon Fraser.
1703 Test: accessibility/corresponding-control-deleted-crash.html
1705 * rendering/RenderObject.cpp:
1706 (WebCore::RenderObject::willBeDestroyed): Move the call to remove the
1707 renderer from the AXCache to after the renderer is removed from the
1708 render tree. This means that the AXObject still exists during renderer
1709 removal, as we require.
1711 2013-01-11 Allan Sandfeld Jensen <allan.jensen@digia.com>
1713 [Qt][WK1] Web Audio support
1714 https://bugs.webkit.org/show_bug.cgi?id=106651
1716 Reviewed by Jocelyn Turcotte.
1718 Convert JavaScript Uint8Array to QByteArray. This conversion is necessary to support testRunner.setAudioData().
1720 * bridge/qt/qt_runtime.cpp:
1721 (JSC::Bindings::isJSUint8Array):
1723 (JSC::Bindings::valueRealType):
1724 (JSC::Bindings::convertValueToQVariant):
1726 2013-01-11 Anton Vayvod <avayvod@chromium.org>
1728 Text Autosizing - elements much narrower than its parent autosizing clusters should be autosized separately.
1729 https://bugs.webkit.org/show_bug.cgi?id=105188
1731 Reviewed by Kenneth Rohde Christiansen.
1733 Some blocks of text might be narrower than their parent clusters and should be autosized separately.
1734 This helps with autosizing for the pages implementing the sidebars as a narrow blocks of text with wide margins and
1735 the main content being positioned atop this margin (or vice versa).
1737 * rendering/TextAutosizer.cpp:
1738 (WebCore::TextAutosizer::isContainerAutosizingCluster):
1740 Returns true if the container is more than 200 pixels narrower than its parent cluster's lowest common
1741 ancestor of all the text nodes.
1743 2013-01-11 Andreas Kling <akling@apple.com>
1745 Remove unused CSSSelector(QualifiedName) constructor.
1746 <http://webkit.org/b/106652>
1748 Reviewed by Antti Koivisto.
1750 * css/CSSSelector.h:
1753 2013-01-11 Zan Dobersek <zandobersek@gmail.com>
1755 [GTK] Disable the ENABLE_LEGACY_WEB_AUDIO feature define in release builds
1756 https://bugs.webkit.org/show_bug.cgi?id=106577
1758 Reviewed by Philippe Normand.
1760 The Web Audio feature is not enabled in the release builds, so there's
1761 no need to enable the legacy Web Audio API either.
1763 No new tests - no new functionality.
1765 * GNUmakefile.features.am.in:
1767 2013-01-11 Antoine Quint <graouts@apple.com>
1769 Web Inspector: Option+Click on Node Expander Doesn't Work the First Time
1770 https://bugs.webkit.org/show_bug.cgi?id=66868
1772 Up to now, the TreeElement.prototype.expandRecursively() method would correctly
1773 expand children recursively based on the provided depth, but would not wait to
1774 perform this task until all child nodes had been populated, which means that this
1775 would only work incrementally with one additional level of child nodes being shown
1776 expanded in the DOM tree upon alt+clicking a given node with a deep hierarchy.
1778 In order to fix this, this patch adds a new optional argument to the DOMAgent's
1779 requestChildNodes() methods to provide the depth at which we want to retrieve children
1780 of a given node. The DOMAgent provides a new .getSubtree() method that calls
1781 requestChildNodes() with the provided depth.
1783 Then in ElementsTreeOutline, we subclass .expandRecursively() to first call DOMAgent's
1784 new .getSubtree() method and then call the default implementation when all nodes
1785 have been retrieved from the backend.
1787 Reviewed by Pavel Feldman.
1789 Tests: inspector-protocol/dom-request-child-nodes-depth.html
1790 inspector/elements/expand-recursively.html
1792 * inspector/Inspector.json: Add the new `depth` parameter to DOM.requestChildNodes().
1793 * inspector/InspectorDOMAgent.cpp:
1794 (WebCore::InspectorDOMAgent::pushChildNodesToFrontend): Add a new optional `depth` parameter
1795 which defaults to 1.
1796 (WebCore::InspectorDOMAgent::requestChildNodes): Add a new optional `depth` parameter
1797 which defaults to 1 and allows -1 as an unbound value.
1798 * inspector/InspectorDOMAgent.h:
1799 (InspectorDOMAgent):
1800 * inspector/front-end/DOMAgent.js:
1801 (WebInspector.DOMNode.prototype.):
1802 (WebInspector.DOMNode.prototype.getSubtree): New method allowing to specify at what depth
1803 we want to retrieve children of a given node from the backend.
1804 * inspector/front-end/ElementsTreeOutline.js:
1805 (WebInspector.ElementsTreeElement.prototype.expandRecursively): Override default implementation
1806 to first obtain the deepest subtree for the current node so that deep expansion happens as expected.
1808 2013-01-11 Alexander Pavlov <apavlov@chromium.org>
1810 Web Inspector: [Elements] Search in the DOM tree does not scroll horizontally
1811 https://bugs.webkit.org/show_bug.cgi?id=106648
1813 Reviewed by Vsevolod Vlasov.
1815 Scroll into view the first match in every tree element, if needed.
1817 * inspector/front-end/ElementsPanel.js:
1818 (WebInspector.ElementsPanel.prototype._highlightCurrentSearchResult):
1820 2013-01-11 Andrey Adaikin <aandrey@chromium.org>
1822 Web Inspector: [Canvas] a minor follow-up to r137262
1823 https://bugs.webkit.org/show_bug.cgi?id=106644
1825 Reviewed by Pavel Feldman.
1827 * inspector/InjectedScriptCanvasModuleSource.js:
1830 2013-01-11 Kent Tamura <tkent@chromium.org>
1832 BaseDateAndTimeInputType should not inherit from TextFieldInputType
1833 https://bugs.webkit.org/show_bug.cgi?id=106306
1835 Reviewed by Hajime Morita.
1837 Date/time input types don't need text-field features at all.
1839 No new tests. This should not make any behavior changes except reduction
1842 * html/BaseDateAndTimeInputType.h:
1843 Inherit InputType instead of TextFieldInputType.
1844 (WebCore::BaseDateAndTimeInputType::BaseDateAndTimeInputType):
1845 (BaseDateAndTimeInputType): Update function declarations.
1846 * html/BaseDateAndTimeInputType.cpp:
1847 Remove handleKeydownEvent and convertFromVisibleValue, which are for
1849 (WebCore::BaseDateAndTimeInputType::shouldRespectListAttribute):
1850 Added. This is necessary for <datalist> support. TextFieldInputType has
1852 (WebCore::BaseDateAndTimeInputType::valueMissing):
1853 Added. This is necessary for validity.valueMissing. TextFieldInputType
1856 * html/BaseChooserOnlyDateAndTimeInputType.cpp:
1857 Remove unnecessary functions which cancel TextFieldInputType behavior.
1858 * html/BaseChooserOnlyDateAndTimeInputType.h:
1859 (BaseChooserOnlyDateAndTimeInputType): Remove declarations for them.
1861 * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
1862 Remove unnecessary functions which cancel TextFieldInputType behavior.
1863 * html/BaseMultipleFieldsDateAndTimeInputType.h:
1864 (BaseMultipleFieldsDateAndTimeInputType):
1865 Add SpinButtonOwner interface. We didn't need it because
1866 TextFieldInputType implements it.
1868 2013-01-11 Mary Wu <mary.wu@torchmobile.com.cn>
1870 [BlackBerry] Enable concatenating headers with same field name
1871 https://bugs.webkit.org/show_bug.cgi?id=106625
1873 Reviewed by Rob Buis.
1875 RFC 2616 specifies that headers could concatenate with comma if they have
1876 same field name. We should enable this if the header allows multiple values.
1878 RIM PR# 275508, internally reviewed by Joe Mason
1881 (WebCore::isAppendableHeader):
1882 (WebCore::NetworkJob::handleNotifyHeaderReceived):
1884 2013-01-11 Jochen Eisinger <jochen@chromium.org>
1886 Connect UserGestureIndicator for mousedown and mouseup events
1887 https://bugs.webkit.org/show_bug.cgi?id=105138
1889 Reviewed by Adam Barth.
1891 Ports that consume user gestures to prevent certain types of pop-ups
1892 need to be able to connect mousedown and mouseup events, otherwise, a
1893 single mouse click will allow for opening multiple pop-ups.
1895 Note that a mousedown is not always followed by a mouseup and vice
1896 versa, e.g. when the mousedown results in a context menu being shown, or
1897 something is dragged into the page.
1899 Test: platform/chromium/fast/events/popup-allowed-from-gesture-only-once-two-events.html
1901 * page/EventHandler.cpp:
1902 (WebCore::EventHandler::clear):
1903 (WebCore::EventHandler::handleMousePressEvent):
1904 (WebCore::EventHandler::handleMouseReleaseEvent):
1905 * page/EventHandler.h:
1907 2013-01-11 Eugene Klyuchnikov <eustas@chromium.org>
1909 Web Inspector: [Resources] "Delete" cookie deletes all cookies with matching name.
1910 https://bugs.webkit.org/show_bug.cgi?id=105633
1912 Reviewed by Pavel Feldman.
1914 "Delete" cookie deletes all cookies with matching name,
1915 ignoring domain and path.
1917 * inspector/Inspector.json: Change argument "domain" to "url"
1918 * inspector/InspectorPageAgent.cpp:
1919 (WebCore::InspectorPageAgent::deleteCookie): Use url to delte cookies.
1920 * inspector/InspectorPageAgent.h: Adopt new signature.
1921 * inspector/front-end/CookieItemsView.js:
1922 (WebInspector.CookieItemsView.prototype._deleteCookie): Ditto.
1924 2013-01-11 KwangYong Choi <ky0.choi@samsung.com>
1926 [EFL] Fix unused parameter build error
1927 https://bugs.webkit.org/show_bug.cgi?id=106639
1929 Reviewed by Kentaro Hara.
1931 Use UNUSED_PARAM macro to fix build error.
1933 No new tests, no behavior change.
1935 * platform/efl/EflScreenUtilities.cpp:
1936 (WebCore::isUsingEcoreX):
1937 * platform/efl/RenderThemeEfl.cpp:
1938 (WebCore::RenderThemeEfl::supportsDataListUI):
1940 2013-01-11 Pavel Feldman <pfeldman@chromium.org>
1942 Web Inspector [chromium]: Debugger.globalObjectCleared is not dispatched on reload after renderer swap
1943 https://bugs.webkit.org/show_bug.cgi?id=106555
1945 Reviewed by Vsevolod Vlasov.
1947 Wrong ::enable was made virtual in the InspectorDebuggerAgent.
1949 Test: inspector/debugger/debugger-scripts-reload.html
1951 * inspector/InspectorDebuggerAgent.h:
1952 (InspectorDebuggerAgent):
1953 * inspector/PageDebuggerAgent.cpp:
1954 (WebCore::PageDebuggerAgent::enable):
1955 (WebCore::PageDebuggerAgent::disable):
1956 * inspector/PageDebuggerAgent.h:
1957 (PageDebuggerAgent):
1959 2013-01-11 Vsevolod Vlasov <vsevik@chromium.org>
1961 Web Inspector: Refactoring, move NetworkWorkspaceProvider to NetworkUISourceCodeProvider.js and rename its parent to SimpleWorkspaceProvider.
1962 https://bugs.webkit.org/show_bug.cgi?id=106635
1964 Reviewed by Pavel Feldman.
1967 * WebCore.vcproj/WebCore.vcproj:
1968 * inspector/compile-front-end.py:
1969 * inspector/front-end/DebuggerScriptMapping.js:
1970 (WebInspector.DebuggerScriptMapping):
1971 * inspector/front-end/DefaultScriptMapping.js:
1972 (WebInspector.DefaultScriptMapping):
1973 (WebInspector.DefaultScriptMapping.prototype.addScript):
1974 (WebInspector.DebuggerWorkspaceProvider):
1975 (WebInspector.DebuggerWorkspaceProvider.prototype.addDebuggerFile):
1976 * inspector/front-end/LiveEditSupport.js:
1977 (WebInspector.LiveEditSupport):
1978 (WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
1979 (WebInspector.LiveEditWorkspaceProvider):
1980 (WebInspector.LiveEditWorkspaceProvider.prototype.addLiveEditFile):
1981 * inspector/front-end/NetworkUISourceCodeProvider.js:
1982 (WebInspector.NetworkWorkspaceProvider):
1983 (WebInspector.NetworkWorkspaceProvider.prototype.addNetworkFile):
1984 * inspector/front-end/SimpleWorkspaceProvider.js: Renamed from Source/WebCore/inspector/front-end/NetworkWorkspaceProvider.js.
1985 (WebInspector.SimpleWorkspaceProvider):
1986 (WebInspector.SimpleWorkspaceProvider.uriForURL):
1987 (WebInspector.SimpleWorkspaceProvider.prototype.requestFileContent):
1988 (WebInspector.SimpleWorkspaceProvider.prototype.setFileContent):
1989 (WebInspector.SimpleWorkspaceProvider.prototype.searchInFileContent):
1990 (WebInspector.SimpleWorkspaceProvider.prototype.addFile):
1991 (WebInspector.SimpleWorkspaceProvider.prototype.removeFile):
1992 (WebInspector.SimpleWorkspaceProvider.prototype.uniqueURI):
1993 (WebInspector.SimpleWorkspaceProvider.prototype.reset):
1994 * inspector/front-end/WebKit.qrc:
1995 * inspector/front-end/inspector.html:
1996 * inspector/front-end/inspector.js:
1998 2013-01-10 Grzegorz Czajkowski <g.czajkowski@samsung.com>
2000 On Linux, should be able to get spelling suggestions without selecting the misspelled word
2001 https://bugs.webkit.org/show_bug.cgi?id=103520
2003 Reviewed by Ryosuke Niwa.
2005 Allow to get/insert spelling suggestions without selecting the misspelled word for
2006 Linux WebKit ports. WebCore assumes that the misspelled word has to be selected
2007 to get its suggestions.
2009 In compliance with native application behaviour a new editing policy is introduced,
2010 to do not highlight the misspelled word to just get its guesses.
2012 No new tests, covered by context-menu-suggestions.html.
2015 Remove _ZN7WebCore6Editor21isSelectionMisspelledEv symbol as Mac port doesn't
2018 * editing/EditingBehavior.h:
2020 (WebCore::EditingBehavior::shouldAllowSpellingSuggestionsWithoutSelection):
2021 Add a new behavior for Linux, to allow spelling suggestions without selecting
2022 the misspelled word.
2024 * editing/Editor.cpp:
2025 (WebCore::Editor::isContinuousSpellCheckingEnabled):
2026 Add missing const modifier, to use this method in 'misspelledWordAtCaretOrRange() const'.
2028 (WebCore::Editor::misspelledWordAtCaretOrRange):
2029 Allow to check spelling under the caret or selected word.
2030 Does nothing for selection made on the multiple words.
2032 (WebCore::Editor::misspelledSelectionString):
2033 Return the misspelled selection.
2035 (WebCore::Editor::guessesForMisspelledWord):
2036 Remove 'Selection' from method name as it may return guesses without selection.
2038 (WebCore::Editor::guessesForMisspelledOrUngrammatical):
2041 * page/ContextMenuController.cpp:
2042 (WebCore::ContextMenuController::contextMenuItemSelected):
2043 Select the word under caret to meet the conditions from misspelledWordAtCaretOrRange.
2045 (WebCore::ContextMenuController::populate):
2046 Update guessesForMisspelledOrUngrammatical call.
2048 2013-01-10 Hajime Morrita <morrita@google.com>
2050 https://bugs.webkit.org/show_bug.cgi?id=106283
2051 [Shadow DOM] HTMLContentElement and HTMLShadowElement should be behind SHADOW_DOM
2053 Reviewed by Kentaro Hara.
2055 No new tests. Covered by existing tests.
2057 This change moves <content> and <shadow> behind
2058 ENABLE(SHADOW_DOM). Note that empty stub definitions are remaining
2059 even after this change. They are for minimizing #if/#endif usage
2060 and won't hurt code size.
2063 * html/InputType.cpp:
2064 (WebCore::InputType::destroyShadowSubtree):
2065 * html/shadow/ContentDistributor.cpp:
2066 (WebCore::ContentDistributor::distribute):
2067 * html/shadow/HTMLContentElement.cpp:
2069 (WebCore::HTMLContentElement::create):
2070 (WebCore::HTMLContentElement::HTMLContentElement):
2071 * html/shadow/HTMLContentElement.h:
2073 (HTMLContentElement):
2074 * html/shadow/HTMLShadowElement.cpp:
2075 * html/shadow/HTMLShadowElement.h:
2077 (WebCore::isHTMLShadowElement):
2078 (WebCore::toHTMLShadowElement):
2079 * html/shadow/TextFieldDecorationElement.cpp:
2080 (WebCore::TextFieldDecorationElement::decorate):
2081 * testing/Internals.cpp:
2082 (WebCore::Internals::createContentElement):
2083 (WebCore::Internals::isValidContentSelect):
2085 2013-01-10 Takashi Sakamoto <tasak@google.com>
2087 Implement CSSGroupingRule for @host @-rules and @supports.
2088 https://bugs.webkit.org/show_bug.cgi?id=106418
2090 Reviewed by Antti Koivisto.
2092 CSSGroupingRule is to share code between CSSMediaRule, CSSSupportsRule
2093 and CSSHostRule. @supports and @host @-rules are dervied from
2095 http://www.w3.org/TR/2012/WD-css3-conditional/#the-cssgroupingrule-interface
2096 https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#css-host-rule-interface
2097 Since @media is also derived from CSSGroupingRule and @region has the
2098 same interface as CSSGroupingRule, modify to use CSSGroupingRule:
2099 http://dev.w3.org/csswg/css3-regions/#the-at-region-style-rule
2101 No new tests, because no new feature is implemented.
2104 * GNUmakefile.list.am:
2107 * WebCore.vcproj/WebCore.vcproj:
2108 * WebCore.xcodeproj/project.pbxproj:
2109 Added CSSGroupingRule.h and CSSGroupingRule.cpp.
2110 * css/CSSAllInOne.cpp:
2111 Modified to include CSSGroupingRule.cpp.
2112 * css/CSSGroupingRule.cpp: Added.
2114 (WebCore::CSSGroupingRule::CSSGroupingRule):
2115 (WebCore::CSSGroupingRule::~CSSGroupingRule):
2116 (WebCore::CSSGroupingRule::insertRule):
2117 (WebCore::CSSGroupingRule::deleteRule):
2118 (WebCore::CSSGroupingRule::appendCssTextForItems):
2119 (WebCore::CSSGroupingRule::length):
2120 (WebCore::CSSGroupingRule::item):
2121 (WebCore::CSSGroupingRule::cssRules):
2122 (WebCore::CSSGroupingRule::reattach):
2123 (WebCore::CSSGroupingRule::reportMemoryUsage):
2124 These codes are moved from CSSMediaRule and WebKitCSSRegionRule.
2125 * css/CSSGroupingRule.h:
2128 * css/CSSMediaRule.cpp:
2129 (WebCore::CSSMediaRule::CSSMediaRule):
2130 (WebCore::CSSMediaRule::~CSSMediaRule):
2131 Make CSSMediaRule inherit CSSGroupingRule.
2132 (WebCore::CSSMediaRule::media):
2133 (WebCore::CSSMediaRule::reattach):
2134 Keep the code for updating media queries' CSSOMWrapper.
2135 (WebCore::CSSMediaRule::reportMemoryUsage):
2136 We need to report media queries' CSSOMWrapper memory usage.
2137 (WebCore::CSSMediaRule::mediaQueries):
2138 (WebCore::CSSMediaRule::cssText):
2139 * css/CSSMediaRule.h:
2140 * css/WebKitCSSRegionRule.cpp:
2141 Make WebKitCSSRegionRule inherit CSSGroupingRule.
2142 (WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
2143 (WebCore::WebKitCSSRegionRule::cssText):
2144 * css/WebKitCSSRegionRule.h:
2146 Added inlined accessor to obtain StyleRuleMedia* and StyleRuleRegion*
2147 from StyleRuleBlock*.
2149 2012-12-28 Andrey Adaikin <aandrey@chromium.org>
2151 Web Inspector: [Canvas] add an option to reload the page if there is an uninstrumented canvas
2152 https://bugs.webkit.org/show_bug.cgi?id=105822
2154 Reviewed by Pavel Feldman.
2156 Show in the front-end an option to reload the page if there is an uninstrumented canvas.
2158 * inspector/front-end/CanvasProfileView.js:
2159 (WebInspector.CanvasProfileType):
2160 (WebInspector.CanvasProfileType.prototype.decorationElement):
2161 (WebInspector.CanvasProfileType.prototype._updateDecorationElement):
2162 (WebInspector.CanvasProfileType.prototype._onReloadPageButtonClick):
2163 * inspector/front-end/ProfileLauncherView.js:
2164 (WebInspector.ProfileLauncherView.prototype.addProfileType):
2165 * inspector/front-end/ProfilesPanel.js:
2166 (WebInspector.ProfileType.prototype.decorationElement):
2168 2013-01-10 Dimitri Glazkov <dglazkov@chromium.org>
2170 The word "selector" is somewhat redundant redundantly used in SelectorChecker.
2171 https://bugs.webkit.org/show_bug.cgi?id=106413
2173 In https://bugs.webkit.org/show_bug.cgi?id=105864, Antti suggested reducing some of the redundant uses of the word
2174 "selector" in SelectorChecker. Here's a start.
2176 Reviewed by Antti Koivisto.
2178 Simple renames, no change in behavior.
2180 * css/SelectorChecker.cpp:
2181 (WebCore::SelectorChecker::match): Renamed.
2183 (WebCore::SelectorChecker::fastCheck): Ditto,
2184 (WebCore::SelectorChecker::checkOne): Ditto.
2185 * css/SelectorChecker.h:
2187 * css/StyleResolver.cpp:
2188 (WebCore::StyleResolver::collectMatchingRulesForList): Changed to use new name.
2189 (WebCore::StyleResolver::ruleMatches): Renamed from checkSelector to better match argument and return value.
2190 (WebCore::StyleResolver::checkRegionSelector): Changed to use new names.
2191 * css/StyleResolver.h:
2193 * dom/SelectorQuery.cpp:
2194 (WebCore::SelectorDataList::matches): Ditto.
2195 (WebCore::SelectorDataList::execute): Ditto.
2196 * html/shadow/ContentSelectorQuery.cpp:
2197 (WebCore::ContentSelectorChecker::checkContentSelector): Ditto.
2199 2013-01-10 John J. Barton <johnjbarton@chromium.org>
2201 Web Inspector: Pass the script url to the script-preprocessor script
2202 https://bugs.webkit.org/show_bug.cgi?id=104384
2204 Reviewed by Pavel Feldman.
2206 Add url argument to the script-preprocessor script in PageAgent.reload()
2208 Test: inspector/debugger/debugger-script-preprocessor.html
2210 * bindings/v8/DebuggerScript.js:
2211 * bindings/v8/ScriptDebugServer.cpp:
2212 (WebCore::ScriptDebugServer::ScriptPreprocessor::ScriptPreprocessor):
2213 (WebCore::ScriptDebugServer::ScriptPreprocessor::preprocessSourceCode):
2214 (WebCore::ScriptDebugServer::handleV8DebugEvent):
2215 * bindings/v8/custom/V8InjectedScriptManager.cpp:
2216 (WebCore::InjectedScriptManager::createInjectedScript):
2218 2013-01-10 Eugene Klyuchnikov <eustas@chromium.org>
2220 Web Inspector: DataGrid refactoring: make cell editing more generic.
2221 https://bugs.webkit.org/show_bug.cgi?id=105849
2223 Reviewed by Pavel Feldman.
2225 Editing feature has been added to DataGrid to edit localStorage.
2226 Column numbers (0 and 1) are hardcoded.
2228 This patch makes column editing feature more generic: remove hardcoded
2229 colums, take "editable" column property into account.
2231 This patch is a prerequisite for cookie editing.
2233 * inspector/front-end/DOMStorageItemsView.js:
2234 Use meaningful column names.
2235 * inspector/front-end/DataGrid.js:
2236 (WebInspector.DataGrid.prototype._ondblclick): Check column editability.
2237 (WebInspector.DataGrid.prototype._contextMenuInDataTable): Ditto.
2238 (WebInspector.DataGridNode.prototype.createCell):
2239 Supply cell element with column id.
2240 (WebInspector.DataGrid.prototype.columnIdentifierFromNode):
2241 Added utility method.
2242 (WebInspector.DataGrid.prototype._nextEditableColumn): Ditto.
2243 (WebInspector.DataGrid.prototype._keyDown): Calculate editable column.
2244 (WebInspector.DataGrid.prototype._editingCommitted): Ditto.
2245 (WebInspector.DataGrid.prototype._startEditing): Ditto.
2246 (WebInspector.DataGrid.prototype._startEditingColumnOfDataGridNode):
2247 Refined parameter type / name.
2248 (WebInspector.DataGrid.prototype._resizerDragging):
2249 Fix resizer index property names.
2250 (WebInspector.DataGrid.prototype._startResizerDragging): Ditto.
2251 (WebInspector.DataGrid.prototype._positionResizers): Ditto.
2252 * inspector/front-end/NetworkPanel.js:
2253 (WebInspector.NetworkLogView.prototype._updateDividersIfNeeded): Ditto.
2255 2013-01-10 Matt Falkenhagen <falken@chromium.org>
2257 Elements must be reattached when inserted/removed from top layer
2258 https://bugs.webkit.org/show_bug.cgi?id=105489
2260 Reviewed by Julien Chaffraix.
2262 Ensure a reattach occurs when an element is inserted/removed from top layer, so its renderer can be inserted correctly:
2263 as a child of RenderView in top layer sibling order if it's in the top layer, and in the usual place otherwise.
2265 We previously relied on style recalc to catch when an element is inserted/removed from the top layer, because it
2266 only happens on dialog.show/close which toggle display: none. But that is incorrect because, for example, close()
2267 followed immediately by show() results in no style change.
2269 Tests: fast/dom/HTMLDialogElement/removed-element-is-removed-from-top-layer.html
2270 fast/dom/HTMLDialogElement/top-layer-stacking-correct-order-remove-readd.html
2273 (WebCore::Element::removedFrom): Call Document::removeFromTopLayer to let the element be removed from the top layer vector.
2274 removeFromTopLayer calls Element::setIsInTopLayer(false) itself if needed.
2275 (WebCore::Element::setIsInTopLayer): Ensure a reattach occurs if the element is already attached.
2277 2013-01-10 Shinya Kawanaka <shinyak@chromium.org>
2279 When a selected node in nested ShadowDOM is deleted, selection have wrong range.
2280 https://bugs.webkit.org/show_bug.cgi?id=106526
2282 Reviewed by Ryosuke Niwa.
2284 Since FrameSelection and htmlediting did not consider nested Shadow DOM, the FrameSelection still selects
2285 removed elements if selected nodes in nested Shadow DOM are removed.
2287 We have to use containsIncludingShadowDOM to handle with nested Shadow DOM correctly.
2289 Test: fast/dom/shadow/selection-in-nested-shadow.html
2291 * editing/FrameSelection.cpp:
2292 (WebCore::removingNodeRemovesPosition):
2293 * editing/htmlediting.cpp:
2294 (WebCore::updatePositionForNodeRemoval):
2296 2013-01-10 Hajime Morrita <morrita@google.com>
2298 [Shadow DOM] Refactoring: InsertionPoint could simplify its subclass hooks
2299 https://bugs.webkit.org/show_bug.cgi?id=106614
2301 Reviewed by Dimitri Glazkov.
2303 This change simplifies InsertionPoint overrides and give some flexibility to it.
2307 - Removes InsertionPoint::isSelectValid(). now ContentSelectorQuery parses given selector anyway.
2308 Invalid select attribute is handled by newly introduced matchTypeFor() method.
2309 - Introduces InsertionPoint::matchTypeFor() to give a chance each InsertionPoint to decide whether it
2310 accepts the given node as its distribution. Then it lets DetailsSummaryElement adopt it.
2311 - Pulls some HTMLShadowElement overrides up to InsertionPoint so that other upcoming InsertionPoint
2312 subclasses don't need to override them.
2314 No new tests. Refactoring.
2316 * html/HTMLDetailsElement.cpp:
2317 (WebCore::DetailsSummaryElement::DetailsSummaryElement):
2318 - Implemented matchTypeFor() to get rid of HTMLContentElement machinery which is compiled out in the upcoming change.
2319 (DetailsSummaryElement):
2320 * html/shadow/ContentSelectorQuery.cpp:
2321 (WebCore::ContentSelectorQuery::ContentSelectorQuery):
2322 (WebCore::ContentSelectorQuery::matches):
2323 * html/shadow/HTMLContentElement.cpp:
2324 (WebCore::HTMLContentElement::matchTypeFor): Added.
2326 * html/shadow/HTMLContentElement.h:
2327 (HTMLContentElement):
2328 (WebCore::isHTMLContentElement):
2329 * html/shadow/HTMLShadowElement.cpp:
2330 * html/shadow/HTMLShadowElement.h:
2331 (HTMLShadowElement):
2332 * html/shadow/InsertionPoint.cpp:
2333 (WebCore::InsertionPoint::emptySelectorList): Moved from HTMLShadowElement.
2335 * html/shadow/InsertionPoint.h:
2336 (WebCore::InsertionPoint::matchTypeFor): Added.
2337 (WebCore::InsertionPoint::selectorList): Moved from HTMLShadowElement.
2339 * testing/Internals.cpp:
2340 (WebCore::Internals::isValidContentSelect):
2342 2013-01-10 Dean Jackson <dino@apple.com>
2344 Plugin snapshot label should take device resolution and inset into account
2345 https://bugs.webkit.org/show_bug.cgi?id=106619
2347 Reviewed by Simon Fraser.
2349 * rendering/RenderSnapshottedPlugIn.cpp:
2350 (WebCore::RenderSnapshottedPlugIn::paintLabel): Take into account the inset in the label image.
2351 (WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel): Look at the page's device scale, and adjust the label image accordingly.
2353 2013-01-10 James Robinson <jamesr@chromium.org>
2355 [chromium] Store scrollable layer's contents size for coordinated scrollable layers
2356 https://bugs.webkit.org/show_bug.cgi?id=106518
2358 Reviewed by Adrienne Walker.
2360 This stores a scrollable layer's contentsSize in the scroll layer's bounds, which is otherwise not useful. This
2361 value is currently calculated based on fragile knowledge of the tree structure immediately beneath a scrollable
2364 * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
2365 (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
2367 2013-01-10 Dan Beam <dbeam@chromium.org>
2369 Implement AutocompleteErrorEvent#reason
2370 https://bugs.webkit.org/show_bug.cgi?id=105568
2372 Reviewed by Adam Barth.
2374 Test: fast/events/constructors/autocomplete-error-event-constructor.html
2376 * WebCore.gypi: Added AutocompleteErrorEvent.idl and AutocompleteErrorEvent.h for chromium port's build.
2377 * dom/AutocompleteErrorEvent.h: Added.
2378 (WebCore): Added new type of error named AutocompleteErrorEvent.
2379 (AutocompleteErrorEventInit): Added init params for AutocompleteErrorEvents (so initEvent() can be used).
2380 (AutocompleteErrorEvent): Added a new error event that inherits from Event but also has a reason for failure.
2381 (WebCore::AutocompleteErrorEvent::create): Factory function to create AutocompleteErrorEvents.
2382 (WebCore::AutocompleteErrorEvent::reason): The reason why a requestAutocomplete() invocation failed. Can be
2383 "disabled", "cancel", or "invalid".
2384 (WebCore::AutocompleteErrorEvent::interfaceName): The name of the event's interface (for event.toString()).
2385 (WebCore::AutocompleteErrorEvent::AutocompleteErrorEvent): Various ways of constructing the error event.
2386 * dom/AutocompleteErrorEvent.idl: Added.
2387 * dom/EventNames.in: Added AutocompleteError to this list, based on REQUEST_AUTOCOMPLETE conditional.
2388 * html/HTMLFormElement.cpp: Updated form elements to dispatch AutocompleteErrorEvents on errors and to give
2389 more details (event.reason) when the request fails.
2390 (WebCore::HTMLFormElement::requestAutocomplete): Changed to newly added failure type "disabled".
2391 (WebCore::HTMLFormElement::finishRequestAutocomplete): Changed
2392 * html/HTMLFormElement.h: Added new results (ErrorDisabled, ErrorCancel, ErrorInvalid).
2393 * page/DOMWindow.idl: Added global event constructor for new AutocompleteErrorEvent() style event creation.
2395 2013-01-10 Yong Li <yoli@rim.com>
2397 HTMLMediaElement::resume() should schedule a load rather than load immediately
2398 https://bugs.webkit.org/show_bug.cgi?id=106587
2400 Reviewed by Eric Carlson.
2402 It is not always safe to start the jobs at the time resume() is called. That is why the jobs are
2403 suspended. It can also be suspended again right after being resumed.
2405 No new tests as there is no visible functional change, also it is a theoretically good-to-have change
2406 that doesn't fix any known cross-platform issue.
2408 * html/HTMLMediaElement.cpp:
2409 (WebCore::HTMLMediaElement::resume): Replace load() with scheduleLoad().
2411 2013-01-10 Adam Barth <abarth@webkit.org>
2413 Add an ENABLE macro and a WebCore::Setting for the threaded parser
2414 https://bugs.webkit.org/show_bug.cgi?id=106595
2416 Reviewed by Benjamin Poulain.
2418 This patch adds both a WebCore::Setting and an ENABLE macro for the
2419 threaded parser. We plan to keep the ENABLE macro off by default for a
2420 while. The runtime setting will let us more easily conduct A/B
2421 experiments when the time arises.
2425 2013-01-10 Xianzhu Wang <wangxianzhu@chromium.org>
2427 Regression(r129944): Heap-use-after-free in WebCore::computeNonFastScrollableRegion
2428 https://bugs.webkit.org/show_bug.cgi?id=99515
2430 Reviewed by Simon Fraser.
2432 The object used-after-freed is a destructed FrameView that is still in the m_scrollableAreas set of the parent FrameView. Actually it has been removed from m_scrollableAreas when setParent(0), but then is added back in updateScrollableAreaSet() because its frameViewParent() is still not 0 (though parent() is already 0).
2434 No new tests. The heap-use-after-free doesn't always cause crash so it can't be stably tested with a test case. Memory analysis tools like asan discovered the heap-use-after-free and verified that the patch can fix the issue.
2436 * page/FrameView.cpp:
2437 (WebCore::FrameView::parentFrameView): Checks if the FrameView has been removed from the parent.
2439 2013-01-10 John Mellor <johnme@chromium.org>
2441 Fix scale of screen.width, window.outerWidth and @media device-width when page scale not applied in compositor.
2442 https://bugs.webkit.org/show_bug.cgi?id=106460
2444 Reviewed by Kenneth Rohde Christiansen.
2446 screen.width, window.outerWidth and @media device-width should be in
2447 density independent (UI) pixels, not physical screen pixels.
2449 This already works on most ports (including iOS). However Chrome for
2450 Android currently internally sizes its windows in physical screen pixels
2451 instead of density independent pixels, and this leaks through in the
2452 sizes provided to WebCore.
2454 This patch scales these sizes appropriately before they reach JavaScript,
2455 on platforms where the applyPageScaleFactorInCompositor setting is false
2456 (i.e. just Chrome for Android). Once Chrome for Android switches over to
2457 the same coordinate space, the applyPageScaleFactorInCompositor setting
2458 will be removed, along with any code (such as this) that depends on it.
2460 The effect of this patch on Chrome for Android when viewing a page with
2461 a width=device-width viewport on a Galaxy Nexus (720x1280 @ dPR 2) is:
2462 @media device-width changes from 720 to 360
2463 screen.width changes from 720 to 360
2464 screen.availWidth changes from 720 to 360
2465 window.outerWidth changes from 720 to 360
2466 window.innerWidth remains 360 (at overview zoom)
2467 @media width remains 360
2468 document.documentElement.clientWidth remains 360
2469 document.documentElement.offsetWidth remains 360
2470 document.documentElement.scrollWidth remains 360
2471 document.body.clientWidth remains 360
2472 document.body.offsetWidth remains 360
2473 document.body.scrollWidth remains 360
2474 And similarly for heights (though they are slightly less than 640, since
2475 toolbars etc. get subtracted from the available height).
2477 No new tests, as applyDeviceScaleFactorInCompositor appears to always be
2478 true in DumpRenderTree, so this situation cannot occur there.
2481 Added applyDeviceScaleFactorInCompositor setting, which allows
2482 detecting whether we need to normalize the scale.
2483 * platform/chromium/PlatformScreenChromium.cpp:
2484 (WebCore::toUserSpace):
2485 Static function for normalizing screen rect scale.
2486 (WebCore::screenRect):
2488 (WebCore::screenAvailableRect):
2490 * rendering/TextAutosizer.cpp:
2491 (WebCore::TextAutosizer::processSubtree):
2492 Use applyDeviceScaleFactorInCompositor instead of
2493 applyPageScaleFactorInCompositor, to scale the window rect correctly
2494 on platforms other than Chrome for Android.
2496 2013-01-10 Florin Malita <fmalita@chromium.org>
2498 Rename GraphicsContext::addRoundedRectClip
2499 https://bugs.webkit.org/show_bug.cgi?id=106581
2501 Reviewed by Simon Fraser.
2503 This patch renames GraphicsContext::addRoundedRectClip to clipRoundedRect for consistency
2504 with the other GC clipping methods.
2506 No new tests: no functional changes.
2509 * platform/graphics/GraphicsContext.cpp:
2510 (WebCore::GraphicsContext::clipRoundedRect):
2511 * platform/graphics/GraphicsContext.h:
2513 * platform/graphics/skia/GraphicsContextSkia.cpp:
2514 (WebCore::GraphicsContext::clipRoundedRect):
2515 * rendering/RenderBox.cpp:
2516 (WebCore::RenderBox::paintBoxDecorations):
2517 (WebCore::RenderBox::pushContentsClip):
2518 * rendering/RenderBoxModelObject.cpp:
2519 (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
2520 (WebCore::RenderBoxModelObject::paintBorder):
2521 (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
2522 * rendering/RenderLayer.cpp:
2523 (WebCore::RenderLayer::clipToRect):
2524 * rendering/RenderThemeChromiumWin.cpp:
2526 (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
2527 * rendering/RenderThemeMacShared.mm:
2528 (WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
2529 (WebCore::RenderThemeMacShared::paintSliderTrack):
2530 * rendering/RenderThemeSafari.cpp:
2531 (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
2532 (WebCore::RenderThemeSafari::paintSliderTrack):
2533 * rendering/RenderThemeWinCE.cpp:
2534 (WebCore::RenderThemeWinCE::paintSearchFieldCancelButton):
2536 2013-01-10 Tommy Widenflycht <tommyw@google.com>
2538 MediaStream API: Adding the new id attribute to MediaStream and MediaStreamTrack
2539 https://bugs.webkit.org/show_bug.cgi?id=106564
2541 Reviewed by Adam Barth.
2543 Specification: http://dev.w3.org/2011/webrtc/editor/getusermedia.html
2544 MediaStream looses its label attribute and instead gets an id attribute.
2545 MediaStreamTrack gets an id attribute.
2547 Not testable yet, will add tests in a followup patch.
2549 * Modules/mediastream/MediaStream.h:
2550 (WebCore::MediaStream::label):
2552 (WebCore::MediaStream::id):
2553 * Modules/mediastream/MediaStream.idl:
2554 * Modules/mediastream/MediaStreamTrack.cpp:
2555 (WebCore::MediaStreamTrack::id):
2557 * Modules/mediastream/MediaStreamTrack.h:
2558 * Modules/mediastream/MediaStreamTrack.idl:
2559 * platform/chromium/support/WebMediaStreamComponent.cpp:
2560 (WebKit::WebMediaStreamComponent::initialize):
2562 (WebKit::WebMediaStreamComponent::isEnabled):
2563 (WebKit::WebMediaStreamComponent::id):
2564 (WebKit::WebMediaStreamComponent::source):
2565 * platform/chromium/support/WebMediaStreamDescriptor.cpp:
2566 (WebKit::WebMediaStreamDescriptor::label):
2568 (WebKit::WebMediaStreamDescriptor::id):
2569 * platform/mediastream/MediaStreamComponent.h:
2570 (WebCore::MediaStreamComponent::id):
2571 (WebCore::MediaStreamComponent::MediaStreamComponent):
2572 (MediaStreamComponent):
2573 * platform/mediastream/MediaStreamDescriptor.h:
2574 (WebCore::MediaStreamDescriptor::create):
2575 (WebCore::MediaStreamDescriptor::id):
2576 (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
2577 (MediaStreamDescriptor):
2579 2013-01-10 Ojan Vafai <ojan@chromium.org>
2581 Flexboxes incorrectly add the scrollbar width to the intrinsic width of fixed-width items
2582 https://bugs.webkit.org/show_bug.cgi?id=106591
2584 Reviewed by Levi Weintraub.
2586 The scrollbar width should only be added if the width of the flex item
2589 Test: fast/css/fixed-width-intrinsic-width-excludes-scrollbars.html
2591 * rendering/RenderBlock.cpp:
2592 (WebCore::RenderBlock::computePreferredLogicalWidths):
2593 Use shared helper method. This also happens to fix the vertical
2596 * rendering/RenderBox.cpp:
2597 (WebCore::RenderBox::instrinsicScrollbarLogicalWidth):
2599 * rendering/RenderBox.h:
2601 Add a method for determining the scrollbar's contribution to the boxes
2604 * rendering/RenderDeprecatedFlexibleBox.cpp:
2605 (WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):
2606 * rendering/RenderFlexibleBox.cpp:
2607 (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
2608 Use shared code for determining the scrollbar width and only add the
2609 width when computing the intrinsic widths.
2611 * rendering/RenderGrid.cpp:
2612 (WebCore::RenderGrid::computePreferredLogicalWidths):\
2613 Just adding a FIXME to account for scrollbar width.
2615 2013-01-10 Nate Chapin <japhet@chromium.org>
2617 Replace unnecessary null-checks with an assert in MainResourceLoader::continueAfterNavigationPolicy.
2618 https://bugs.webkit.org/show_bug.cgi?id=106476
2620 Reviewed by Alexey Proskuryakov.
2622 * loader/MainResourceLoader.cpp:
2623 (WebCore::MainResourceLoader::continueAfterNavigationPolicy): Null-checks for resourceLoader were
2624 added in an abundance of caution in r139150. Given that we know the load hasn't been cancelled,
2625 resourceLoader can only be null if continueAfterNavigationPolicy() has already been called
2626 before when m_substituteData is valid. continueAfterNavigationPolicy() is only called for redirects,
2627 and SubstituteData doesn't support redirects, so it is correct to assert that resourceLoader is non-null.
2629 2013-01-10 Levi Weintraub <leviw@chromium.org>
2631 ScrollingCoordinator touch event hit rects aren't converted to proper coordinates when in nested views
2632 https://bugs.webkit.org/show_bug.cgi?id=106383
2634 Reviewed by James Robinson.
2636 ScrollingCoordinator uses clippedOverflowRectForRepaint(0) to generate the bounds for a renderer's hit
2637 testing rect. The rect this returns is in the coordinates of its document. This change converts the
2638 rect to the outermost view's coordinate system using convertToContainingView.
2640 Tests: platform/chromium/fast/events/touch/touch-hit-rects-in-iframe.html
2642 * page/scrolling/ScrollingCoordinator.cpp:
2643 (WebCore::accumulateRendererTouchEventTargetRects):
2645 2013-01-10 Levi Weintraub <leviw@chromium.org>
2647 Regression(r137939): Heap-use-after-free in WebCore::accumulateDocumentEventTargetRects
2648 https://bugs.webkit.org/show_bug.cgi?id=106454
2650 Reviewed by James Robinson.
2652 Correctly removing child Documents from their parent's tracked touch handler maps when detaching and
2653 when their last touch event handler is removed.
2655 Test: fast/events/touch/nested-document-with-touch-handler-detached-crash.html
2658 (WebCore::Document::detach):
2659 (WebCore::Document::didRemoveEventTargetNode):
2661 2013-01-10 Nate Chapin <japhet@chromium.org>
2663 REGRESSION(r138222): WebDocumentLoaderMac-related leaks seen on Leaks bot
2664 https://bugs.webkit.org/show_bug.cgi?id=106137
2666 Reviewed by Brady Eidson.
2668 Tested manually by comparing before and after leaks output for WK1-mac.
2670 * loader/MainResourceLoader.cpp:
2671 (WebCore::MainResourceLoader::receivedError): Call dispatchDidFailLoading() if
2672 a SubstituteData load fails or is cancelled. Without this call, load counts
2673 are not balanced on WebDocumentLoaderMac and it is retained forever.
2674 (WebCore::MainResourceLoader::didFinishLoading):
2676 2013-01-10 Robert Kroeger <rjkroege@chromium.org>
2678 Manually revert http://trac.webkit.org/changeset/136012
2679 https://bugs.webkit.org/show_bug.cgi?id=106580
2681 Reviewed by Dimitri Glazkov.
2683 136012 broke touch-scrolling of an overflow div in an iframe. Revert manually
2684 to work around conflicts.
2686 * page/EventHandler.cpp:
2687 (WebCore::EventHandler::handleWheelEvent):
2689 2013-01-10 Robert Hogan <robert@webkit.org>
2691 REGRESSION(r136967): margin-top + overflow:hidden causes incorrect layout for internal floated elements
2692 https://bugs.webkit.org/show_bug.cgi?id=106374
2694 Reviewed by David Hyatt.
2696 r136397 treated any self-collapsing block that had a clearance delta as though it was clearing a float, but
2697 blocks that avoid floats can get a clearance delta too. So just ensure there is clearance on the block when deciding
2698 whether we need to add the margin back in before placing the float.
2700 Test: fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-and-float-child.html
2702 * rendering/RenderBlockLineLayout.cpp:
2703 (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
2705 2013-01-10 Alexander Pavlov <apavlov@chromium.org>
2707 Web Inspector: Color picker in Styles pane shows wrong initial color
2708 https://bugs.webkit.org/show_bug.cgi?id=106567
2710 Reviewed by Pavel Feldman.
2712 The RGB's G value for "crimson" was wrong.
2714 * inspector/front-end/Color.js:
2716 2013-01-10 Tony Chang <tony@chromium.org>
2718 Speed up supplemental dependency computation
2719 https://bugs.webkit.org/show_bug.cgi?id=106503
2721 Reviewed by Adam Barth.
2723 On my machine, generating supplemental IDL dependencies was taking about 18s
2724 because it has to run the C preprocessor on each IDL file. Avoid this by using
2725 a regular expression to find the Supplemental= value in each IDL file rather than
2726 doing a full parse. Now generating supplemental IDL dependencies is less than a
2729 preprocess-idls.pl used to also check IDL attributes against IDLAttributes.txt.
2730 Move this code to run in generate-bindings.pl. This change revealed that
2731 TestRunner.idl uses PassContext so add that to IDLAttributes.txt.
2733 No new tests, this is a build refactor. EWS bots should be green.
2735 * DerivedSources.make: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
2736 * DerivedSources.pri: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
2737 * GNUmakefile.am: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
2738 * UseJSC.cmake: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
2739 * UseV8.cmake: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
2740 * WebCore.gyp/WebCore.gyp: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
2741 * bindings/scripts/IDLAttributes.txt: Add PassContext needed by TestRunner.idl.
2742 * bindings/scripts/generate-bindings.pl:
2743 (loadIDLAttributes): Moved from preprocess-idls.pl.
2744 (checkIDLAttributes): Moved from preprocess-idls.pl.
2745 (checkIfIDLAttributesExists): Moved from preprocess-idls.pl.
2746 * bindings/scripts/preprocess-idls.pl:
2747 (getSupplementalFromIDLFile): Helper method to get Supplemental=* quickly.
2749 2013-01-10 Max Vujovic <mvujovic@adobe.com>
2751 [CSS Filters] RenderLayerCompositor::addToOverlapMap should take into account the filters outsets (ie. blur and drop-shadow)
2752 https://bugs.webkit.org/show_bug.cgi?id=94022
2754 Reviewed by Simon Fraser.
2756 When a layer has a filter that moves pixels, we need to add its entire bounds, including its
2757 outsets and children, to the overlap map. The filter can move the children's pixels
2758 anywhere in the layer, so we can't rely on the children's bounds.
2760 Eventually, we should avoid adding children to the overlap map if the parent's bounds used
2761 for overlap testing already include the children. I've added a FIXME for this optimization.
2763 Tests: compositing/filters/sw-layer-overlaps-hw-shadow.html
2764 compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow.html
2765 compositing/filters/sw-shadow-overlaps-hw-layer.html
2766 compositing/filters/sw-shadow-overlaps-hw-shadow.html
2768 * rendering/RenderLayer.h:
2769 (WebCore::RenderLayer::overlapBounds):
2770 If necessary, return the calculated layer bounds, including the children. Otherwise,
2771 return the localBoundingBox.
2773 (WebCore::RenderLayer::overlapBoundsIncludeChildren):
2774 If the layer has a filter that moves pixels, return true.
2775 * rendering/RenderLayerCompositor.cpp:
2776 (WebCore::RenderLayerCompositor::addToOverlapMap):
2777 Add the overlapBounds instead of the localBoundingBox to the overlap map.
2778 (WebCore::RenderLayerCompositor::computeCompositingRequirements):
2779 Use the overlapBounds instead of the localBoundingBox for overlap testing.
2781 2013-01-09 Ojan Vafai <ojan@chromium.org>
2783 intrinsic min-widths don't override width for file upload controls
2784 https://bugs.webkit.org/show_bug.cgi?id=106517
2786 Reviewed by Tony Chang.
2788 Separate out computing intrinsic width from perferred width so that
2789 we can use the intrinsic width correctly when applying min-width/max-width.
2790 The preferred width is the width used in its container's computation
2791 of its intrinsic width.
2793 This is the first in a series of patches making this work across
2796 Test: fast/forms/file/intrinsic-min-width-overrides-width.html
2798 * rendering/RenderBox.cpp:
2799 (WebCore::RenderBox::minIntrinsicLogicalWidth):
2801 (WebCore::RenderBox::maxIntrinsicLogicalWidth):
2802 (WebCore::RenderBox::computeIntrinsicLogicalWidths):
2803 (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
2804 * rendering/RenderBox.h:
2806 * rendering/RenderFileUploadControl.cpp:
2807 (WebCore::RenderFileUploadControl::computeIntrinsicLogicalWidths):
2809 (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
2810 * rendering/RenderFileUploadControl.h:
2811 (RenderFileUploadControl):
2813 2013-01-10 Victor Carbune <victor@rosedu.org>
2815 media/video-controls-captions.html fails after fixing https://bugs.webkit.org/show_bug.cgi?id=105536
2816 https://bugs.webkit.org/show_bug.cgi?id=106230
2818 Reviewed by Eric Carlson.
2820 Until Chromium has proper controls for lists of text tracks, the caption button
2821 needs to preserve its functionality.
2823 Updated TestExpectations to reactivate test.
2825 * html/HTMLMediaElement.cpp:
2826 (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Added explicit call to updateTextTrackDisplay.
2827 This enables hiding the tracks immediately.
2828 * html/shadow/MediaControlElements.cpp:
2829 (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Added extra check before rendering
2830 that captions should actually be displayed.
2832 2013-01-10 Hajime Morrita <morrita@google.com>
2834 ComposedShadowTreeWalker shouldn't be exposed to non-ShadowDOM classes
2835 https://bugs.webkit.org/show_bug.cgi?id=106505
2837 Reviewed by Dimitri Glazkov.
2839 This change hides ComposedShadowTreeWalker from non-ShadowDOM classes by
2841 - introducing thin wrapper functions on NodeRenderingTraversal and relacing
2842 CSTW callsites with it,
2843 - replacing ComposedShadowTreeWalker usage with AncestorChainWalker if possible and
2844 - moving AncestorChainWalker to its own file and including it on files
2845 which needs only AncestorChainWalker. This eliminates ComposedShadowTreeWalker.h inclusions.
2847 No new tests. No behavior change.
2850 * GNUmakefile.list.am:
2853 * WebCore.xcodeproj/project.pbxproj:
2854 * dom/AncestorChainWalker.cpp: Added. Extracted from ComposedShadowTreeWalker.cpp
2856 (WebCore::AncestorChainWalker::AncestorChainWalker):
2857 (WebCore::AncestorChainWalker::parent):
2858 * dom/AncestorChainWalker.h: Added. Extracted from ComposedShadowTreeWalker.h
2860 (AncestorChainWalker):
2861 (WebCore::AncestorChainWalker::get):
2862 (WebCore::AncestorChainWalker::crossingInsertionPoint):
2863 * dom/ComposedShadowTreeWalker.cpp:
2864 * dom/ComposedShadowTreeWalker.h:
2865 * dom/DOMAllInOne.cpp:
2866 * dom/ElementShadow.h:
2867 (WebCore::shadowOfParent):
2869 * dom/EventDispatcher.cpp:
2871 * dom/NodeRenderingTraversal.cpp:
2872 (WebCore::NodeRenderingTraversal::nextInScope):
2873 (NodeRenderingTraversal):
2874 (WebCore::NodeRenderingTraversal::previousInScope): Added.
2875 (WebCore::NodeRenderingTraversal::parentInScope): Added.
2876 (WebCore::NodeRenderingTraversal::lastChildInScope): Added.
2877 * dom/NodeRenderingTraversal.h:
2878 (NodeRenderingTraversal):
2879 * dom/TreeScope.cpp:
2880 * html/HTMLLIElement.cpp:
2881 (WebCore::HTMLLIElement::attach):
2882 * page/EventHandler.cpp:
2883 * page/FocusController.cpp: Replacing CSTW with NRT
2885 (WebCore::FocusNavigationScope::focusNavigationScopeOf):
2886 (WebCore::FocusController::findNodeWithExactTabIndex):
2887 (WebCore::nextNodeWithGreaterTabIndex):
2888 (WebCore::previousNodeWithLowerTabIndex):
2889 (WebCore::FocusController::nextFocusableNode):
2890 (WebCore::FocusController::previousFocusableNode):
2892 2013-01-10 Zan Dobersek <zandobersek@gmail.com>
2894 Remove the ENABLE_ANIMATION_API feature define occurences
2895 https://bugs.webkit.org/show_bug.cgi?id=106544
2897 Reviewed by Simon Fraser.
2899 The Animation API code was removed in r137243. The ENABLE_ANIMATION_API
2900 feature define handling still lingers in various build systems and configurations
2901 but is of no use, so it should be removed.
2903 No new tests - no new functionality.
2905 * Configurations/FeatureDefines.xcconfig:
2906 * GNUmakefile.features.am.in:
2908 2013-01-10 Robert Phillips <robertphillips@chromium.org>
2910 Serialization of Gradients fails when PlatformContextSkia is not bitmap backed
2911 https://bugs.webkit.org/show_bug.cgi?id=106559
2913 Reviewed by Stephen White.
2915 This patch switches over from having platform/Skia improperly
2916 crack open the device to find the bitmap configuration to just
2917 specifying it directly.
2919 No new tests. This bug is Chromium specific and only occurs in a
2920 debugging tool (when serializing to a Skia-specific file format).
2922 * platform/graphics/skia/PlatformContextSkia.cpp:
2923 (WebCore::PlatformContextSkia::createCompatibleDevice):
2925 2013-01-10 Alexander Pavlov <apavlov@chromium.org>
2927 The "outline-offset" property is not found in the computed style property list
2928 https://bugs.webkit.org/show_bug.cgi?id=106561
2930 Reviewed by Alexis Menard.
2932 Listed CSSPropertyOutlineOffset in the CSSComputedStyleDeclaration's computedProperties[].
2934 Test: fast/css/getComputedStyle/getComputedStyle-outline-offset.html
2936 * css/CSSComputedStyleDeclaration.cpp:
2938 2013-01-10 David Faure <faure@kde.org>
2940 PluginPackage::freeLibraryTimerFired asserts if plugin got loaded again meanwhile
2941 https://bugs.webkit.org/show_bug.cgi?id=106463
2943 Reviewed by Simon Hausmann.
2945 No new tests, this code path will be tested by bug 106140.
2947 * plugins/PluginPackage.cpp:
2948 (WebCore::PluginPackage::freeLibraryTimerFired): skip unloading if loaded again meanwhile.
2950 2013-01-10 Alexander Pavlov <apavlov@chromium.org>
2952 CSSParser does not allow the absence of whitespace between "and" and "expression"
2953 https://bugs.webkit.org/show_bug.cgi?id=106458
2955 Reviewed by Antti Koivisto.
2957 The issue was that a construct similar to "and(max-width: 480px)" looks like a function call (token type FUNCTION), even though
2958 it is actually a MEDIA_AND followed by a parenthesized expression.
2960 Test: fast/css/media-rule-no-whitespace.html
2962 * css/CSSParser.cpp:
2963 (WebCore::CSSParser::detectFunctionTypeToken): Return if the detection has been successful.
2964 (WebCore::CSSParser::realLex): Test for media query tokens if function type detection has failed.
2967 2013-01-10 Alexis Menard <alexis@webkit.org>
2969 ASSERT_NOT_REACHED in StylePropertySet::fontValue when accessing font style property through JS after setting style font size.
2970 https://bugs.webkit.org/show_bug.cgi?id=88866
2972 Reviewed by Alexander Pavlov.
2974 StylePropertySet::fontValue always assumed that it was called using
2975 style.font after a subsequent call which set the shorthand font. The
2976 ASSERT_NOT_REACHED assumed that all longhands of the font shorthand not
2977 set by the shorthand itself were set to initial. While it's true when
2978 we set the font shorthand (i.e all longhands are set to implicit initial)
2979 it is not true when you set the longhands individually. For example setting
2980 font-size will not set other font properties to initial. It is the behavior of all
2981 other shorthands in WebKit. When reconstructing the shorthand other
2982 properties tests whether the value of each longhands is initial or not
2983 (if not then we omit the value, as we should always construct the
2984 shortest shorthand possible) or if the value is set or not (if set then
2985 we include it in the shorthand if not then we omit it). The comment
2986 removed was also talking about invalid font property potentially built
2987 by fontValue(). So far appendFontLonghandValueIfExplicit will always
2988 construct a valid value as it takes care of adding ' ' or '/' when
2989 needed, so the return value is parsable and correct.
2991 Test: fast/css/font-shorthand-from-longhands.html
2993 * css/StylePropertySet.cpp:
2994 (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
2995 (WebCore::StylePropertySet::fontValue):
2996 * css/StylePropertySet.h:
2998 2013-01-10 Sheriff Bot <webkit.review.bot@gmail.com>
3000 Unreviewed, rolling out r139306.
3001 http://trac.webkit.org/changeset/139306
3002 https://bugs.webkit.org/show_bug.cgi?id=106550
3004 it broke inspector-protocol/nmi-webaudio-leak-test.html
3005 (Requested by loislo on #webkit).
3007 * bindings/v8/V8PerIsolateData.cpp:
3008 (WebCore::V8PerIsolateData::reportMemoryUsage):
3009 * css/CSSMediaRule.cpp:
3010 (WebCore::CSSMediaRule::reportMemoryUsage):
3011 * css/CSSProperty.cpp:
3012 (WebCore::CSSProperty::reportMemoryUsage):
3013 * css/CSSStyleSheet.cpp:
3014 (WebCore::CSSStyleSheet::reportMemoryUsage):
3015 * css/MediaList.cpp:
3016 (WebCore::MediaList::reportMemoryUsage):
3018 (WebCore::RuleData::reportMemoryUsage):
3019 (WebCore::RuleSet::reportMemoryUsage):
3020 (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
3021 * css/StyleResolver.cpp:
3022 (WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
3023 (WebCore::StyleResolver::reportMemoryUsage):
3024 * css/StyleSheetContents.cpp:
3025 (WebCore::StyleSheetContents::reportMemoryUsage):
3026 * dom/TreeScope.cpp:
3027 (WebCore::TreeScope::reportMemoryUsage):
3028 * inspector/HeapGraphSerializer.cpp:
3029 (WebCore::HeapGraphSerializer::reportMemoryUsage):
3030 * inspector/InspectorMemoryAgent.cpp:
3031 * inspector/InspectorProfilerAgent.cpp:
3032 (WebCore::InspectorProfilerAgent::reportMemoryUsage):
3033 * inspector/MemoryInstrumentationImpl.cpp:
3034 (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
3035 * loader/DocumentLoader.cpp:
3036 (WebCore::DocumentLoader::reportMemoryUsage):
3037 * loader/FrameLoader.cpp:
3038 (WebCore::FrameLoader::reportMemoryUsage):
3039 * loader/MainResourceLoader.cpp:
3040 (WebCore::MainResourceLoader::reportMemoryUsage):
3041 * loader/Prerenderer.cpp:
3042 (WebCore::Prerenderer::reportMemoryUsage):
3043 * loader/ResourceLoader.cpp:
3044 (WebCore::ResourceLoader::reportMemoryUsage):
3045 * loader/cache/CachedImage.cpp:
3046 (WebCore::CachedImage::reportMemoryUsage):
3048 (WebCore::Page::reportMemoryUsage):
3050 2013-01-10 Ilya Tikhonovsky <loislo@chromium.org>
3052 Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 2/N
3053 https://bugs.webkit.org/show_bug.cgi?id=106546
3055 Reviewed by Vsevolod Vlasov.
3057 Many nontrivial class members were instrumented in reportMemoryUsage methods.
3059 * bindings/v8/V8PerIsolateData.cpp:
3060 (WebCore::V8PerIsolateData::reportMemoryUsage):
3061 * css/CSSMediaRule.cpp:
3062 (WebCore::CSSMediaRule::reportMemoryUsage):
3063 * css/CSSProperty.cpp:
3064 (WebCore::CSSProperty::reportMemoryUsage):
3065 * css/CSSStyleSheet.cpp:
3066 (WebCore::CSSStyleSheet::reportMemoryUsage):
3067 * css/MediaList.cpp:
3068 (WebCore::MediaList::reportMemoryUsage):
3070 (WebCore::RuleData::reportMemoryUsage):
3071 (WebCore::RuleSet::reportMemoryUsage):
3072 (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
3073 * css/StyleResolver.cpp:
3074 (WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
3075 (WebCore::StyleResolver::reportMemoryUsage):
3076 * css/StyleSheetContents.cpp:
3077 (WebCore::StyleSheetContents::reportMemoryUsage):
3078 * dom/TreeScope.cpp:
3079 (WebCore::TreeScope::reportMemoryUsage):
3080 * inspector/HeapGraphSerializer.cpp:
3081 (WebCore::HeapGraphSerializer::reportMemoryUsage):
3082 * inspector/InspectorMemoryAgent.cpp:
3083 * inspector/InspectorProfilerAgent.cpp:
3084 (WebCore::InspectorProfilerAgent::reportMemoryUsage):
3085 * inspector/MemoryInstrumentationImpl.cpp:
3086 (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
3087 * loader/DocumentLoader.cpp:
3088 (WebCore::DocumentLoader::reportMemoryUsage):
3089 * loader/FrameLoader.cpp:
3090 (WebCore::FrameLoader::reportMemoryUsage):
3091 * loader/MainResourceLoader.cpp:
3092 (WebCore::MainResourceLoader::reportMemoryUsage):
3093 * loader/Prerenderer.cpp:
3094 (WebCore::Prerenderer::reportMemoryUsage):
3095 * loader/ResourceLoader.cpp:
3096 (WebCore::ResourceLoader::reportMemoryUsage):
3097 * loader/cache/CachedImage.cpp:
3098 (WebCore::CachedImage::reportMemoryUsage):
3100 (WebCore::Page::reportMemoryUsage):
3102 2013-01-10 Christophe Dumez <christophe.dumez@intel.com>
3104 [EFL] Add gstreamer 1.0.5 to jhbuild
3105 https://bugs.webkit.org/show_bug.cgi?id=106178
3107 Reviewed by Laszlo Gombos.
3109 Remove GSTREAMER_INTERFACES_LIBRARIES from EFL
3110 CMake configuration.
3112 No new tests, no behavior change for layout tests.
3114 * PlatformEfl.cmake:
3116 2013-01-09 Christophe Dumez <christophe.dumez@intel.com>
3118 Unreviewed build fix after r139266.
3120 r139266 broke the debug build of the gstreamer backend due
3121 to a missing header include.
3123 No new tests, no behavior change.
3125 * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
3127 2013-01-09 Alec Flett <alecflett@chromium.org>
3129 IndexedDB: Allow createIndex/createObjectStore to be asynchronous
3130 https://bugs.webkit.org/show_bug.cgi?id=106377
3132 Reviewed by Tony Chang.
3134 Migrate implementations of createIndex/deleteIndex,
3135 createObjectStore/deleteObjectStore over to IDBDatabaseBackendImpl,
3136 so that they can be asynchronous in multi-process ports.
3138 Has the side effect of removing the last consumers of
3139 IDBIndexBackendImpl and IDBObjectStoreBackendImpl. The former
3140 is removed complete and the latter becomes a temporary namespace
3141 pending a further more mechanical code shuffle.
3143 A key refactoring effect is that the IDBDatabaseBackendImpl
3144 now contains the authoritative IDBDatabaseMetadata hierarchy,
3145 and updates to it are consolidated in one place rather than
3146 scattered across a parallel object tree.
3148 No new tests as this is just refactoring.
3150 * Modules/indexeddb/IDBBackingStore.cpp: Simplify objectstore/index loading and propagate errors.
3151 (WebCore::IDBBackingStore::getObjectStores):
3152 (WebCore::IDBBackingStore::getIndexes):
3153 * Modules/indexeddb/IDBBackingStore.h:
3155 * Modules/indexeddb/IDBCursorBackendImpl.cpp: Dependency cleanup.
3156 * Modules/indexeddb/IDBCursorBackendImpl.h: Dependency cleanup.
3158 * Modules/indexeddb/IDBDatabase.cpp: Frontend IDBObjectStores no longer hold onto backend objects.
3159 (WebCore::IDBDatabase::createObjectStore):
3160 (WebCore::IDBDatabase::deleteObjectStore):
3161 * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Add all create/deleteIndex operations from IDBIndexBackendImpl.
3162 (WebCore::CreateObjectStoreOperation::create):
3163 (WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
3164 (CreateObjectStoreOperation):
3165 (WebCore::DeleteObjectStoreOperation::create):
3166 (WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
3167 (DeleteObjectStoreOperation):
3168 (WebCore::CreateObjectStoreAbortOperation::create):
3169 (WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
3170 (CreateObjectStoreAbortOperation):
3171 (WebCore::DeleteObjectStoreAbortOperation::create):
3172 (WebCore::DeleteObjectStoreAbortOperation::DeleteObjectStoreAbortOperation):
3173 (DeleteObjectStoreAbortOperation):
3174 (CreateIndexOperation):
3175 (WebCore::CreateIndexOperation::create):
3176 (WebCore::CreateIndexOperation::CreateIndexOperation):
3178 (DeleteIndexOperation):
3179 (WebCore::DeleteIndexOperation::create):
3180 (WebCore::DeleteIndexOperation::DeleteIndexOperation):
3181 (CreateIndexAbortOperation):
3182 (WebCore::CreateIndexAbortOperation::create):
3183 (WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation):
3184 (DeleteIndexAbortOperation):
3185 (WebCore::DeleteIndexAbortOperation::create):
3186 (WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
3187 (WebCore::GetOperation::GetOperation):
3188 (WebCore::IDBDatabaseBackendImpl::addObjectStore):
3189 (WebCore::IDBDatabaseBackendImpl::removeObjectStore):
3190 (WebCore::IDBDatabaseBackendImpl::addIndex):
3191 (WebCore::IDBDatabaseBackendImpl::removeIndex):
3192 (WebCore::IDBDatabaseBackendImpl::openInternal):
3193 (WebCore::IDBDatabaseBackendImpl::metadata):
3194 (WebCore::IDBDatabaseBackendImpl::createObjectStore):
3195 (WebCore::CreateObjectStoreOperation::perform):
3196 (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
3197 (WebCore::IDBDatabaseBackendImpl::createIndex):
3198 (WebCore::CreateIndexOperation::perform):
3199 (WebCore::CreateIndexAbortOperation::perform):
3200 (WebCore::IDBDatabaseBackendImpl::deleteIndex):
3201 (WebCore::DeleteIndexOperation::perform):
3202 (WebCore::DeleteIndexAbortOperation::perform):
3203 (WebCore::IDBDatabaseBackendImpl::get):
3204 (WebCore::IDBDatabaseBackendImpl::put):
3205 (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
3206 (WebCore::IDBDatabaseBackendImpl::count):
3207 (WebCore::DeleteRangeOperation::perform):
3208 (WebCore::DeleteObjectStoreOperation::perform):
3209 (WebCore::IDBDatabaseBackendImpl::deleteDatabaseFinal):
3210 (WebCore::IDBDatabaseBackendImpl::loadObjectStores): Load directly into metadata from backing store.
3211 (WebCore::CreateObjectStoreAbortOperation::perform):
3212 (WebCore::DeleteObjectStoreAbortOperation::perform):
3213 (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
3214 * Modules/indexeddb/IDBDatabaseBackendImpl.h:
3216 (IDBDatabaseBackendImpl):
3217 (WebCore::IDBDatabaseBackendImpl::createObjectStore):
3218 (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
3219 * Modules/indexeddb/IDBIndexBackendImpl.cpp: Removed.
3220 * Modules/indexeddb/IDBIndexBackendImpl.h: Removed.
3221 * Modules/indexeddb/IDBObjectStore.cpp:
3222 (WebCore::IDBObjectStore::IDBObjectStore): Frontend IDBIndex objects no longer hold onto backend.
3223 (WebCore::IDBObjectStore::createIndex):
3224 (WebCore::IDBObjectStore::deleteIndex):
3225 * Modules/indexeddb/IDBObjectStore.h:
3226 (WebCore::IDBObjectStore::create):
3228 * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
3229 * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
3231 (IDBObjectStoreBackendImpl):
3232 * Modules/indexeddb/IDBTransaction.cpp:
3233 (WebCore::IDBTransaction::objectStore):
3234 * Modules/indexeddb/IDBTransaction.h:
3235 * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
3236 * Modules/indexeddb/IDBTransactionBackendImpl.h:
3237 (WebCore::IDBTransactionBackendImpl::objectStore):
3239 * WebCore.vcproj/WebCore.vcproj:
3240 * WebCore.xcodeproj/project.pbxproj:
3242 2013-01-09 John J. Barton <johnjbarton@chromium.org>
3244 Web Inspector: Don't throw exceptions when we don't have a callstack
3245 https://bugs.webkit.org/show_bug.cgi?id=104849
3247 Reviewed by Pavel Feldman.
3249 Check array details.callFrames.length before accessing array;
3251 No new tests, but this fix may help us find the cause of 'other' reasons.
3253 * inspector/front-end/ScriptsPanel.js:
3254 (WebInspector.ScriptsPanel.prototype._debuggerPaused):
3256 2013-01-09 Eugene Klyuchnikov <eustas@chromium.org>
3258 Web Inspector: [Network] Data grid header and content cells are misaligned.
3259 https://bugs.webkit.org/show_bug.cgi?id=105795
3261 Reviewed by Pavel Feldman.
3263 Header and content tables have different width -> same percent values
3264 turn to different cell widths.
3266 * inspector/front-end/DataGrid.js: Add "corner" cell to all rows.
3267 * inspector/front-end/dataGrid.css: Apply "corner" rules to "td" nodes.
3268 (.data-grid .data-container): Remove artificial padding.
3270 2013-01-09 Tien-Ren Chen <trchen@chromium.org>
3272 Make caret repainting container-aware
3273 https://bugs.webkit.org/show_bug.cgi?id=103955
3275 Reviewed by Simon Fraser.
3277 Only invalidate local rects on the caret's repaint container,
3278 instead of invalidating an absolute rect on the whole view.
3280 Test: fast/repaint/caret-with-transformation.html
3282 * editing/FrameSelection.cpp:
3283 (WebCore::caretRendersInsideNode):
3284 (WebCore::caretRenderer):
3285 (WebCore::FrameSelection::caretRenderer):
3286 (WebCore::DragCaretController::caretRenderer):
3287 (WebCore::repaintCaretForLocalRect):
3288 (WebCore::FrameSelection::recomputeCaretRect):
3289 (WebCore::CaretBase::invalidateCaretRect):
3290 (WebCore::FrameSelection::focusedOrActiveStateChanged):
3291 * editing/FrameSelection.h:
3292 * rendering/RenderView.cpp:
3293 (WebCore::RenderView::repaintSelection):
3294 * rendering/RenderView.h:
3296 2013-01-09 Ryosuke Niwa <rniwa@webkit.org>
3298 Rebaseline the binding test after r139278.
3300 * bindings/scripts/test/JS/JSTestEventTarget.cpp:
3301 (WebCore::JSTestEventTarget::getOwnPropertySlot):
3303 2013-01-09 Ryosuke Niwa <rniwa@webkit.org>
3305 [JSC] REGRESSION(r135093): A form control with name=length overrides length property on form.elements
3306 https://bugs.webkit.org/show_bug.cgi?id=105775
3308 Reviewed by Sam Weinig.
3310 Fixed the bug by respecting properties on ancestor classes.
3312 Test: fast/dom/collection-length-should-not-be-overridden.html
3314 * bindings/js/JSDOMBinding.h:
3315 (WebCore::getStaticValueSlotEntryWithoutCaching): Added.
3316 * bindings/scripts/CodeGeneratorJS.pm:
3317 (GenerateGetOwnPropertySlotBody): Use getStaticValueSlotEntryWithoutCaching to climb up the class
3320 2013-01-09 Kondapally Kalyan <kalyan.kondapally@intel.com>
3322 [EFL] [WebGL] Remove GLX dependencies from X11WindowResources..
3323 https://bugs.webkit.org/show_bug.cgi?id=106319
3325 Reviewed by Kenneth Rohde Christiansen.
3327 This patch removes GLX specific calls from X11WindowResources.
3328 This class is shared by both GLX and EGL implementations.
3330 * platform/graphics/surfaces/glx/GLXSurface.cpp:
3331 (WebCore::GLXTransportSurface::setGeometry):
3332 * platform/graphics/surfaces/glx/X11WindowResources.cpp:
3333 (WebCore::X11OffScreenWindow::reSizeWindow):
3335 2013-01-09 Huang Dongsung <luxtella@company100.net>
3337 Remove deviceScaleFactor argument in computeMinimumScaleFactorForContentContained().
3338 https://bugs.webkit.org/show_bug.cgi?id=106500
3340 Reviewed by Kenneth Rohde Christiansen.
3342 deviceScaleFactor argument is not used after r139189.
3344 No new tests. Refactoring only.
3346 * dom/ViewportArguments.cpp:
3347 (WebCore::computeMinimumScaleFactorForContentContained):
3348 * dom/ViewportArguments.h:
3351 2013-01-09 Elliott Sprehn <esprehn@gmail.com>
3353 Node::containingShadowRoot should be constant time
3354 https://bugs.webkit.org/show_bug.cgi?id=106494
3356 Reviewed by Dimitri Glazkov.
3358 There's no reason to traverse up the tree to find the containing
3359 ShadowRoot when we already know if we're in a ShadowRoot by looking at
3362 No new tests, just refactoring.
3365 (WebCore::Node::containingShadowRoot):
3367 2013-01-09 Hajime Morrita <morrita@google.com>
3369 [Shadow DOM] Distribution related code on ElementShadow should be minimized.
3370 https://bugs.webkit.org/show_bug.cgi?id=106294
3372 Reviewed by Dimitri Glazkov.
3374 This change moves ElementShadow::m_selectFeatures,
3375 m_shouldCollectSelectFeatureSet and related methods to
3378 There are also some renaming and small refactorings for better fit
3381 - shouldCollectSelectFeatureSet is renamed needsSelectorRuleSet for conciseness.
3382 - setShouldCollectSelectFeatureSet() which used recursion morphed into
3383 iterative willAffectSelector().
3384 - ensureDistributionFromDocument() becomes a static method.
3386 No new tests. Refactoring.
3390 (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
3391 * dom/ElementShadow.cpp:
3392 (WebCore::ElementShadow::addShadowRoot):
3393 (WebCore::ElementShadow::removeAllShadowRoots):
3394 * dom/ElementShadow.h:
3396 (WebCore::ElementShadow::invalidateDistribution):
3397 (WebCore::ElementShadow::ensureDistribution):
3398 (WebCore::ElementShadow::didAffectSelector):
3399 (WebCore::ElementShadow::willAffectSelector):
3400 (WebCore::ElementShadow::containingShadow):
3402 * html/shadow/ContentDistributor.cpp:
3403 (WebCore::ScopeContentDistribution::registerInsertionPoint):
3404 (WebCore::ScopeContentDistribution::unregisterInsertionPoint):
3405 (WebCore::ContentDistributor::ContentDistributor):
3406 (WebCore::ContentDistributor::ensureDistribution):
3408 (WebCore::ContentDistributor::ensureDistributionFromDocument):
3409 (WebCore::ContentDistributor::invalidateDistribution):
3410 (WebCore::ContentDistributor::ensureSelectFeatureSet):
3411 (WebCore::ContentDistributor::collectSelectFeatureSetFrom):
3412 (WebCore::ContentDistributor::didAffectSelector):
3413 (WebCore::ContentDistributor::willAffectSelector):
3414 (WebCore::ContentDistributor::didShadowBoundaryChange):
3415 * html/shadow/ContentDistributor.h:
3416 (ScopeContentDistribution):
3417 (WebCore::ContentDistributor::needsSelectFeatureSet):
3418 (WebCore::ContentDistributor::setNeedsSelectFeatureSet):
3419 (ContentDistributor):
3420 (WebCore::ContentDistributor::setValidity):
3421 (WebCore::ContentDistributor::needsInvalidation):
3422 * html/shadow/HTMLContentElement.cpp:
3423 (WebCore::HTMLContentElement::parseAttribute):
3424 * html/shadow/HTMLContentElement.h:
3425 * html/shadow/HTMLShadowElement.cpp:
3426 (WebCore::HTMLShadowElement::olderShadowRoot):
3427 * html/shadow/InsertionPoint.cpp:
3428 (WebCore::InsertionPoint::getDistributedNodes):
3429 (WebCore::InsertionPoint::insertedInto):
3430 (WebCore::InsertionPoint::removedFrom):
3431 * html/shadow/InsertionPoint.h:
3432 (WebCore::InsertionPoint::canAffectSelector):
3433 * testing/Internals.cpp:
3434 (WebCore::Internals::hasSelectorForIdInShadow):
3435 (WebCore::Internals::hasSelectorForClassInShadow):
3436 (WebCore::Internals::hasSelectorForAttributeInShadow):
3437 (WebCore::Internals::hasSelectorForPseudoClassInShadow):
3439 2013-01-09 Shinya Kawanaka <shinyak@chromium.org>
3441 Assert triggered in SelectorChecker::checkOneSelector when scrollbar (e.g. :horizontal) selector is specified.
3442 https://bugs.webkit.org/show_bug.cgi?id=106414
3444 Reviewed by Dimitri Glazkov.
3446 In SelectorChecker::checkOneSelector, scrollbar related pseudoType (e.g. :horizontal) is not handled anywhere.
3447 This caused ASSERT triggered. We have to check them.
3449 Test: fast/css/scrollbar-crash.html
3451 * css/SelectorChecker.cpp:
3452 (WebCore::SelectorChecker::checkOneSelector):
3454 2013-01-09 Filip Pizlo <fpizlo@apple.com>
3456 Unreviewed, fix build after http://trac.webkit.org/changeset/139262
3458 * Modules/webaudio/DefaultAudioDestinationNode.cpp:
3460 2013-01-09 Chris Rogers <crogers@google.com>
3462 Allow live/local audio input to be enabled only when needed
3463 https://bugs.webkit.org/show_bug.cgi?id=106490
3465 Reviewed by Kenneth Russell.
3467 WebAudio can process live/local audio input using a MediaStreamAudioSourceNode.
3468 But currently the audio back-end is not able to know when/if audio input will be
3469 needed, so it needs to assume the worst and initialize the system to support potential
3470 audio input in all cases. For some audio back-ends this can end up being less efficient
3471 than initializing for audio output only. This patch adds the ability for the audio back-end
3472 to be able to initialize itself for audio input later on, only when/if it's needed.
3474 * Modules/webaudio/AudioContext.cpp:
3475 (WebCore::AudioContext::createMediaStreamSource):
3476 * Modules/webaudio/AudioDestinationNode.h:
3477 (AudioDestinationNode):
3478 * Modules/webaudio/DefaultAudioDestinationNode.cpp:
3479 (WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
3480 (WebCore::DefaultAudioDestinationNode::initialize):
3481 (WebCore::DefaultAudioDestinationNode::uninitialize):
3482 (WebCore::DefaultAudioDestinationNode::createDestination):
3484 (WebCore::DefaultAudioDestinationNode::enableInput):
3485 * Modules/webaudio/DefaultAudioDestinationNode.h:
3486 (DefaultAudioDestinationNode):
3487 * Modules/webaudio/OfflineAudioDestinationNode.h:
3488 (OfflineAudioDestinationNode):
3489 (WebCore::OfflineAudioDestinationNode::sampleRate):
3490 * platform/audio/AudioDestination.h:
3492 * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
3493 (WebCore::AudioDestination::create):
3494 * platform/audio/mac/AudioDestinationMac.cpp:
3495 (WebCore::AudioDestination::create):
3497 2013-01-09 Tim Horton <timothy_horton@apple.com>
3499 Don't drop to huge tile mode if we're only slow-scrolling because of a page overlay
3500 https://bugs.webkit.org/show_bug.cgi?id=106502
3501 <rdar://problem/12959143>
3503 Reviewed by Simon Fraser.
3505 We only use the MainThreadScrollingReason "ForcedOnMainThread" if WebKit2 installs
3506 a page overlay (TiledCoreAnimationDrawingArea::didInstallPageOverlay), which clients
3507 can cause arbitrarily.
3509 We probably should still use default-sized tiles in this case (this will also
3510 prevent us from falling into gigantic tiles for WebKit2 find-in-page, among other things).
3512 * rendering/RenderLayerBacking.cpp:
3513 (WebCore::RenderLayerBacking::adjustTileCacheCoverage):
3515 2013-01-09 Takashi Sakamoto <tasak@google.com>
3517 border-radius with box-shadow is not rendered correctly
3518 https://bugs.webkit.org/show_bug.cgi?id=106404
3520 Reviewed by Hajime Morita.
3522 RoundedRect::isRenderable is wrong. So RoundedRect::adjustRadii
3523 is invoked for renderable RoundedRects.
3525 Test: fast/borders/border-radius-with-box-shadow.html
3527 * platform/graphics/RoundedRect.cpp:
3528 (WebCore::RoundedRect::isRenderable):
3529 Have to compare topLeft's height plus bottomLeft's height with
3530 rect's height and to compare topRight's height plus bottomRight's
3531 height with rect's height.
3533 2013-01-09 Joanmarie Diggs <jdiggs@igalia.com>
3535 [GTK] accessibility/aria-labelledby-overrides-label.html requires a proper baseline
3536 https://bugs.webkit.org/show_bug.cgi?id=105638
3538 Reviewed by Martin Robinson.
3540 The test was failing for two reasons:
3541 - AccessibilityRenderObject::correspondingLabelForControlElement() was
3542 not ignoring the ARIA labelled-by property
3543 - AccessibilityController::accessibleElementById() was not implemented
3545 Because getting an element by ID cannot be done in the UIProcess, the
3546 decision was made to expose the element's ID as an accessible attribute
3549 In addition, fixing the bug in AccessibilityRenderObject made it possible
3550 to eliminate the Gtk platform-specific expectations for another test.
3552 No new tests; instead, the failing test was unskipped and a proper baseline
3555 * accessibility/AccessibilityRenderObject.cpp:
3556 (WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
3557 Return null for objects where hasTextAlternative() is true.
3558 * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3559 (webkitAccessibleGetAttributes): Expose the element's ID as an accessible
3562 2013-01-09 Tony Gentilcore <tonyg@chromium.org>
3564 Remove unused includes from HTMLTreeBuilder
3565 https://bugs.webkit.org/show_bug.cgi?id=106496
3567 Reviewed by Levi Weintraub.
3569 Noticed these while searching HTMLTreeBuilder for non-thread friendly deps.
3571 No new tests because no new functionality.
3573 * html/parser/HTMLTreeBuilder.cpp:
3575 2013-01-09 Max Vujovic <mvujovic@adobe.com>
3577 [CSS Shaders] Detached identifier after mesh box type is not applied
3578 https://bugs.webkit.org/show_bug.cgi?id=105321
3580 Reviewed by Dean Jackson.
3582 Before this patch, if a "detached" identifier followed a mesh box type identifier, the
3583 detached identifier was not applied. In other words, the mesh would still be attached.
3586 -webkit-filter: custom(url(...) mix(url(...) normal source-atop), 1 1 border-box detached);
3588 Although the mesh box type is being removed from the Filter Effects spec, for now, we
3589 continue to accept the mesh box type in parsing because of existing content. Eventually,
3590 custom filters will transition to an at-rule syntax, once it is defined.
3592 Test: css3/filters/custom/custom-filter-detached-mesh-with-mesh-box-type.html
3594 * css/CSSParser.cpp:
3595 (WebCore::CSSParser::parseCustomFilter):
3596 In CSSParser, do not add the mesh box type identifier to the list that will be passed to
3597 StyleResolver. StyleResolver is expecting a "detached" identifier in that position and
3598 does not interpret mesh box types.
3600 2013-01-09 Dan Winship <danw@gnome.org>
3602 [Soup] Handle redirection inside WebKit
3603 https://bugs.webkit.org/show_bug.cgi?id=61122
3604 https://bugs.webkit.org/show_bug.cgi?id=88961
3606 Reviewed by Martin Robinson.
3608 Rather than using libsoup's built-in redirection handling (which
3609 doesn't do everything exactly the way WebKit wants, and can't
3610 handle redirects to non-http URIs anyway), process redirections
3613 No new tests; unskips a few existing tests.
3615 * platform/network/ResourceHandleInternal.h:
3616 (WebCore::ResourceHandleInternal::ResourceHandleInternal):
3617 (ResourceHandleInternal):
3618 * platform/network/soup/ResourceError.h:
3620 * platform/network/soup/ResourceErrorSoup.cpp:
3621 (WebCore::ResourceError::transportError):
3623 (WebCore::ResourceError::httpError):
3624 * platform/network/soup/ResourceHandleSoup.cpp:
3626 (WebCore::gotHeadersCallback):
3627 (WebCore::restartedCallback):
3628 (WebCore::shouldRedirect):
3629 (WebCore::doRedirect):
3630 (WebCore::redirectCloseCallback):
3631 (WebCore::redirectSkipCallback):
3632 (WebCore::cleanupSoupRequestOperation):
3633 (WebCore::sendRequestCallback):
3634 (WebCore::createSoupMessageForHandleAndRequest):
3635 (WebCore::createSoupRequestAndMessageForHandle):
3636 (WebCore::ResourceHandle::start):
3638 2013-01-09 Florin Malita <fmalita@chromium.org>
3640 [Skia] Implement GraphicsContext::addRoundedRectClip() using SkCanvas::clipRRect()
3641 https://bugs.webkit.org/show_bug.cgi?id=106461
3643 Reviewed by Stephen White.
3645 This patch adds a Skia-specific version of GraphicsContext::addRoundedRectClip() to take
3646 advantage of the SkCanvas::clipRRect() primitive.
3648 As a minor cleanup, the anonymous namespace in GraphicsContextSkia.cpp is extended to cover
3649 all the local helper functions.
3651 No new tests: coverage provided by existing tests.
3653 * platform/graphics/GraphicsContext.cpp:
3655 * platform/graphics/skia/GraphicsContextSkia.cpp:
3656 (WebCore::GraphicsContext::addRoundedRectClip):
3658 (WebCore::GraphicsContext::fillRoundedRect):
3659 * platform/graphics/skia/PlatformContextSkia.h:
3660 (WebCore::PlatformContextSkia::clipRRect):
3663 2013-01-09 Andreas Kling <akling@apple.com>
3665 SVG-as-image: Throw out cached bitmap renderings after they sit unused for some time.
3666 <http://webkit.org/b/106484>
3667 <rdar://problem/12983216>
3669 Reviewed by Antti Koivisto.
3671 Add a one-shot timer to SVGImageCache to self-clear the bitmap cache 30 seconds after last access.
3672 This prevents us from keeping huge ImageBuffers around in memory for the lifetime of the elements
3673 referencing that particular SVG file. (The ownership model is actually a bit more complicated
3674 but that's irrelevant to this issue.)
3676 10234kB progression on Membuster3.
3678 * svg/graphics/SVGImageCache.cpp:
3679 (WebCore::SVGImageCache::SVGImageCache):
3680 (WebCore::SVGImageCache::~SVGImageCache):
3681 (WebCore::SVGImageCache::clearBitmapCache):
3682 (WebCore::SVGImageCache::cacheClearTimerFired):
3683 (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
3684 * svg/graphics/SVGImageCache.h:
3687 2013-01-09 Alexey Proskuryakov <ap@apple.com>
3689 Assertion failure in SubresourceLoader::didFail when reloading
3690 https://bugs.webkit.org/show_bug.cgi?id=101416
3692 Reviewed by Nate Chapin.
3694 Test: http/tests/cache/network-error-during-revalidation.html
3696 * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didFail): Handle revalidation.
3698 2013-01-09 Alexandru Chiculita <achicu@adobe.com>
3700 Assertion Failure in WebCore::RenderLayerCompositor::updateCompositingLayers
3701 https://bugs.webkit.org/show_bug.cgi?id=106419
3703 Reviewed by Simon Fraser.
3705 No new tests added, just un-skipped 3 existing tests.
3707 RenderLayerCompositor::updateCompositingLayers is being called with a pending layout, so computing the
3708 layers at that point would be useless & error-prone as they will be using incorrect layout values. If a layout is pending it means that
3709 RenderLayerCompositor::updateCompositingLayers would get called again after the pending layout ends, so any values calculated at that point would be
3710 overwritten immediately. This patch removes the old ASSERT and makes it a return instead.
3712 * rendering/RenderLayerCompositor.cpp:
3713 (WebCore::RenderLayerCompositor::updateCompositingLayers):
3715 2013-01-09 Robert Hogan <robert@webkit.org>
3717 REGRESSION(r111439): Focus ring is rendered incorrectly in fast/inline/continuation-outlines-with-layers.html
3718 https://bugs.webkit.org/show_bug.cgi?id=106064
3720 Reviewed by David Hyatt.
3722 * rendering/RenderBlock.cpp:
3723 (WebCore::RenderBlock::paintObject):
3725 2013-01-09 Gregg Tavares <gman@google.com>
3727 Add stub for CanvasProxy
3728 https://bugs.webkit.org/show_bug.cgi?id=106275
3730 Reviewed by Dean Jackson.
3732 No new tests as no new fuctionality exposed.
3735 * DerivedSources.make:
3736 * DerivedSources.pri:
3737 * GNUmakefile.list.am:
3740 * WebCore.xcodeproj/project.pbxproj:
3741 * html/canvas/CanvasProxy.cpp: Added.
3742 * html/canvas/CanvasProxy.h: Added.
3743 * html/canvas/CanvasProxy.idl: Added.
3745 2013-01-09 Antti Koivisto <antti@apple.com>
3747 Release FastMalloc thread caches on memory warning
3748 https://bugs.webkit.org/show_bug.cgi?id=106471
3750 Reviewed by Geoff Garen.
3752 FastMalloc keeps some memory in per-thread caches (currently 2MB each). We currently flush these caches on memory warning
3753 for the main thread only. We should do it for other WebKit threads that use FastMalloc too.
3755 Call WTF::releaseFastMallocFreeMemory in a bunch of WebCore support threads on memory warning. Unfortunately we don't have
3756 an uniform way of doing threads so this requires bunch of thread type specific code.
3758 Looks to be ~1% progression in membuster3 final and maximum numbers.
3760 * platform/mac/MemoryPressureHandlerMac.mm:
3761 (WebCore::MemoryPressureHandler::releaseMemory):
3762 * storage/StorageTask.cpp:
3763 (WebCore::StorageTask::performTask):
3764 * storage/StorageTask.h:
3765 (WebCore::StorageTask::createReleaseFastMallocFreeMemory):
3766 * storage/StorageThread.cpp:
3767 (WebCore::storageThreads):
3769 (WebCore::StorageThread::StorageThread):
3770 (WebCore::StorageThread::~StorageThread):
3771 (WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThread):
3772 * storage/StorageThread.h:
3774 * workers/WorkerThread.cpp:
3775 (WebCore::threadSetMutex):
3776 (WebCore::workerThreads):
3777 (WebCore::WorkerThread::workerThreadCount):
3778 (WebCore::WorkerThread::WorkerThread):
3779 (WebCore::WorkerThread::~WorkerThread):
3780 (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThread):
3782 * workers/WorkerThread.h:
3785 2013-01-09 Tony Gentilcore <tonyg@chromium.org>
3787 REGRESSION(r139141): Assertion failure in WebCore::HTMLConstructionSite::HTMLConstructionSite
3788 https://bugs.webkit.org/show_bug.cgi?id=106412
3790 Reviewed by Darin Adler.
3792 This corrects the assertion added in r139141. The assertion was designed to make sure that we are using the
3793 HTMLDocument class. XHTML documents also use HTMLDocument.
3795 No new tests because no new functionality.
3797 * html/parser/HTMLConstructionSite.cpp:
3798 (WebCore::HTMLConstructionSite::HTMLConstructionSite):
3800 2013-01-08 Ojan Vafai <ojan@chromium.org>
3802 min-content gets the wrong value if min-width is set on some form controls
3803 https://bugs.webkit.org/show_bug.cgi?id=106389
3805 Reviewed by Tony Chang.
3807 Simplify the logic. The only exposed change in behavior is that
3808 m_minPreferredLogicalWidth gets set to m_maxPreferredLogicalWidth
3809 instead of 0 when min-width is set.
3811 Test: fast/forms/min-content-form-controls.html
3813 * rendering/RenderFileUploadControl.cpp:
3814 (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
3815 * rendering/RenderListBox.cpp:
3816 (WebCore::RenderListBox::computePreferredLogicalWidths):
3817 * rendering/RenderMenuList.cpp:
3818 (WebCore::RenderMenuList::computePreferredLogicalWidths):
3819 * rendering/RenderSlider.cpp:
3820 (WebCore::RenderSlider::computePreferredLogicalWidths):
3821 * rendering/RenderTextControl.cpp:
3822 (WebCore::RenderTextControl::computePreferredLogicalWidths):
3824 2013-01-09 Abhishek Arya <inferno@chromium.org>
3826 Mitigate out-of-bounds access in InlineIterator
3827 https://bugs.webkit.org/show_bug.cgi?id=104812
3829 Reviewed by Levi Weintraub.
3831 Share code between InlineIterator::current and InlineIterator::previousInSameNode,
3832 thereby checking for access outside text renderer's length.
3834 * rendering/InlineIterator.h:
3836 (WebCore::InlineIterator::characterAt):
3838 (WebCore::InlineIterator::current):
3839 (WebCore::InlineIterator::previousInSameNode):
3841 2013-01-09 Yongjun Zhang <yongjun_zhang@apple.com>
3843 If ImageLoader's loadEventSender or errorEventSender fires after document is detached, the document will be leaked.
3845 https://bugs.webkit.org/show_bug.cgi?id=106394
3847 Reviewed by Alexey Proskuryakov.
3849 ImageLoader's loadEventSender and errorEventSender schedule event dispatching in separate timers and refs
3850 the Element in updatedHasPendingEvent. If the Document is detached before either eventSender dispatches,
3851 we would leak the Document since we bail out early in dispatchPendingLoadEvent or dispatchPendingErrorEvent,
3852 without deref-ing the Element itself.
3854 No new tests. Verified manually by using heap tool to count the living HTMLDocuments.
3856 * loader/ImageLoader.cpp:
3857 (WebCore::ImageLoader::dispatchPendingLoadEvent): also call updatedHasPendingEvent to deref the Element if
3858 the document is detached.
3859 (WebCore::ImageLoader::dispatchPendingErrorEvent): ditto.
3861 2013-01-09 Dimitri Glazkov <dglazkov@chromium.org>
3863 Unreviewed, rolling out r139143.
3864 http://trac.webkit.org/changeset/139143
3865 https://bugs.webkit.org/show_bug.cgi?id=106135
3867 Broke Chromium content_browsertests.
3869 * platform/leveldb/LevelDBDatabase.cpp:
3870 (WebCore::LevelDBDatabase::open):
3871 (WebCore::LevelDBDatabase::openInMemory):
3873 2013-01-09 Sam Weinig <sam@webkit.org>
3875 Add Settings.in and make_settings.pl to the project.
3877 Reviewed by Anders Carlsson.
3879 * WebCore.xcodeproj/project.pbxproj:
3881 2013-01-09 Ojan Vafai <ojan@chromium.org>
3883 marquee special-case in RenderBlock is not needed
3884 https://bugs.webkit.org/show_bug.cgi?id=106396
3886 Reviewed by Simon Fraser.
3888 This was added in http://trac.webkit.org/changeset/105772. The layout test
3889 in that patch (which is disabled) works and the original site that was broken
3892 * rendering/RenderBlock.cpp:
3893 (WebCore::RenderBlock::computePreferredLogicalWidths):
3895 2013-01-09 Tony Chang <tony@chromium.org>
3897 Automatically generate Settings::unifiedTextCheckerEnabled
3898 https://bugs.webkit.org/show_bug.cgi?id=106382
3900 Reviewed by Adam Barth.
3902 No new tests, no change in behavior. This is covered by existing editing/spelling tests.
3904 * page/Settings.cpp:
3905 (WebCore): Move default value into a global so we can generate the initializer.
3906 (WebCore::Settings::Settings): Remove initializer code that is now generated.
3908 (Settings): Remove getters and setters.
3909 * page/Settings.in: Add entry to be generated.
3910 * testing/InternalSettings.cpp:
3911 (WebCore::InternalSettings::Backup::Backup): Remove backup since the generated code does this.
3912 (WebCore::InternalSettings::Backup::restoreTo): Remove restore code since the generated code does this.
3913 * testing/InternalSettings.h:
3914 (InternalSettings): Remove member variable.
3915 * testing/InternalSettings.idl: The getter was unused so it's being removed. The setter is now generated.
3917 2013-01-09 Alexis Menard <alexis@webkit.org>
3919 Implement CSS computed style value for transition shorthand
3920 https://bugs.webkit.org/show_bug.cgi?id=105035
3922 Reviewed by Dean Jackson.
3924 Implement support for query the transition and webkit-transition
3925 shorthand from the computed style.
3927 Test: transitions/transitions-parsing.html
3929 * css/CSSComputedStyleDeclaration.cpp:
3930 (WebCore::createTransitionPropertyValue): Factor the code to create the
3931 correct value into a function to reuse it for the shorthand.
3932 (WebCore::getTransitionPropertyValue):
3933 (WebCore::createTimingFunctionValue): Little refactor, the intermediate
3934 local variables are not needed.
3935 (WebCore::getTimingFunctionValue):
3936 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3938 2013-01-09 Hajime Morrita <morrita@google.com>
3940 Document::setActiveNode() should be Document::setActiveElement()
3941 https://bugs.webkit.org/show_bug.cgi?id=106437
3943 Reviewed by Ojan Vafai.
3945 No new tests. No functoinal change.
3948 (WebCore::Document::setActiveElement):
3949 (WebCore::Document::updateHoverActiveState):
3952 * rendering/HitTestResult.cpp:
3953 (WebCore::HitTestResult::innerElement):
3955 * rendering/HitTestResult.h:
3958 2013-01-09 Shinya Kawanaka <shinyak@chromium.org>
3960 [Shadow DOM]: ShadowRoot has wrong nodeName attribute
3961 https://bugs.webkit.org/show_bug.cgi?id=104995
3963 Reviewed by Dimitri Glazkov.
3965 According to the Shadow DOM spec, ShadowRoot.nodeName should return '#document-fragment' instead of '#shadow-root'.
3966 We remove ShadowRoot::nodeName.
3968 No new tests, covered by existing tests.
3970 * dom/ShadowRoot.cpp:
3974 2013-01-09 Zoltan Horvath <zoltan@webkit.org>
3976 [CSS Regions] Selecting text through nested regions causes weird and unclearable selection
3977 https://bugs.webkit.org/show_bug.cgi?id=105641
3979 Reviewed by David Hyatt.
3981 If you have a region with a nested region inside what is rendered below the base region and you are trying select text
3982 starting from the base region and ending it in the nested region, firstly you got a weird selection, secondly you can't
3983 clear the selection. We could prevent this strange behavior by preventing the selection through different region flows.
3985 Test: fast/regions/selecting-text-through-different-region-flows.html
3987 * rendering/RenderView.cpp:
3988 (WebCore::RenderView::setSelection): Don't allow selection when trying to select different region flows.
3990 2013-01-09 Hugo Parente Lima <hugo.lima@openbossa.org>
3992 Regression(r138681) : Add HAVE(ACCESSIBILITY) guard to atk files, fix for a fix.
3993 https://bugs.webkit.org/show_bug.cgi?id=106448
3995 Reviewed by Gyuyoung Kim.
3997 Some atk files don't use HAVE(ACCESSIBILITY). It might make build errors when
3998 the macro isn't enabled.
4000 * accessibility/atk/WebKitAccessibleHyperlink.h:
4001 * accessibility/atk/WebKitAccessibleInterfaceAction.h:
4002 * accessibility/atk/WebKitAccessibleInterfaceComponent.h:
4003 * accessibility/atk/WebKitAccessibleInterfaceHypertext.h:
4005 2013-01-09 Chris Fleizach <cfleizach@apple.com>
4007 AX: native popup buttons should not use textUnderElement for their title
4008 https://bugs.webkit.org/show_bug.cgi?id=106349
4010 Reviewed by Ryosuke Niwa.
4012 Chromium relies on the older title() method to return its title. As a result, we also
4013 need to handle the case of <select> element pop up buttons returning the textUnderElement().
4015 No new tests. Fix existing break.
4017 * accessibility/AccessibilityNodeObject.cpp:
4018 (WebCore::AccessibilityNodeObject::title):
4020 2013-01-09 Jussi Kukkonen <jussi.kukkonen@intel.com>
4022 IndexedDB: Remove ASSERTs that can't assert but result in compiler warnings
4023 https://bugs.webkit.org/show_bug.cgi?id=106442
4025 Reviewed by Kentaro Hara.
4027 IDBLevelDBCoding::m_metaDataType has been changed to unsigned
4028 so ASSERT(m_metaDataType >= 0) is no longer useful: the compiler
4029 warnings however create build difficulties at least with EFL.
4031 * Modules/indexeddb/IDBLevelDBCoding.cpp:
4032 (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::metaDataType):
4033 (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::compare):
4035 2012-12-29 Ilya Tikhonovsky <loislo@chromium.org>
4037 Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 1/N
4038 https://bugs.webkit.org/show_bug.cgi?id=106445
4040 Reviewed by Vsevolod Vlasov.
4042 The patch has almost mechanical changes.
4044 * bindings/v8/V8Binding.cpp:
4045 * bindings/v8/V8ValueCache.cpp:
4047 (WebCore::StringCache::reportMemoryUsage):
4050 (WebCore::Document::reportMemoryUsage):
4051 * dom/DocumentStyleSheetCollection.cpp:
4052 (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
4053 * dom/ElementRareData.cpp:
4054 (WebCore::ElementRareData::reportMemoryUsage):
4055 * loader/cache/CachedResource.cpp:
4056 (WebCore::CachedResource::reportMemoryUsage):
4058 (WebCore::Frame::reportMemoryUsage):