1 2012-07-31 Li Yin <li.yin@intel.com>
3 AudioPannerNode should raise exception when distanceModel is set incorrectly
4 https://bugs.webkit.org/show_bug.cgi?id=90952
6 Reviewed by Chris Rogers.
8 Spec: http://www.w3.org/TR/webaudio/#AudioPannerNode-section
9 The distance model can be only set to LINEAR_DISTANCE, INVERSE_DISTANCE or EXPONENTIAL_DISTANCE.
10 If the incorrect value is set, it will raise the exception.
11 Use the unsigned short to replace unsigned long in AudioPannerNode.idl.
13 Test: webaudio/audiopannernode-basic.html
15 * Modules/webaudio/AudioPannerNode.cpp:
16 (WebCore::AudioPannerNode::setDistanceModel): raise exception
18 * Modules/webaudio/AudioPannerNode.h:
20 * Modules/webaudio/AudioPannerNode.idl: using unsigned short to replace unsigned long
22 2012-07-31 Max Vujovic <mvujovic@adobe.com>
24 [CSS Shaders] CSS parser rejects parameter names that are also CSS keywords
25 https://bugs.webkit.org/show_bug.cgi?id=92537
27 Reviewed by Dirk Schulze.
29 Remove the CSS keyword check for CSS Shaders parameter names. Parameters are allowed to be
30 any valid CSS identifier, including CSS keywords. See the spec:
31 https://dvcs.w3.org/hg/FXTF/raw-file/tip/custom/index.html#feCustom
33 The CSS parser was rejecting input like the following because it uses a CSS keyword
34 "background" as a parameter name:
35 -webkit-filter: custom(none url(fragment.shader), background 0 1 0 1);
37 Test: css3/filters/custom/custom-filter-css-keyword-as-parameter-name.html
40 (WebCore::CSSParser::parseCustomFilter): Do not return early when the parameter name is a
41 CSS keyword (i.e. when the CSSParserValue has a non-zero id).
43 2012-07-31 Pravin D <pravind.2k4@gmail.com>
45 Caret position is wrong when a editable container has word-wrap:normal set
46 https://bugs.webkit.org/show_bug.cgi?id=89649
48 Reviewed by Levi Weintraub.
50 Correcting the incorrect addumption that the min and max position for the caret rect is constrained to
51 the logical containing block width. This assumption is incorrect when the text has word-wrap:normal and
52 flows beyound the visible rect of the container.
54 Test: editing/input/editable-container-with-word-wrap-normal.html
56 * rendering/RenderText.cpp:
57 (WebCore::RenderText::localCaretRect):
59 2012-07-31 Antti Koivisto <antti@apple.com>
61 Crash in FrameLoader::checkLoadComplete with non-browser client app
62 https://bugs.webkit.org/show_bug.cgi?id=92774
64 Reviewed by Alexey Proskuryakov..
66 Speculative fix. It is possible that CSSFontSelector could get deleted during the timer callback
67 and memory reused, making m_document point to some garbage when it is tested at the end.
69 * css/CSSFontSelector.cpp:
70 (WebCore::CSSFontSelector::beginLoadTimerFired):
72 2012-07-31 Hans Wennborg <hans@chromium.org>
74 Speech JavaScript API: Throw exception for start() when already started
75 https://bugs.webkit.org/show_bug.cgi?id=92756
77 Reviewed by Adam Barth.
79 Make the start() function throw an exception if the SpeechRecognition
80 object was already started.
82 Test: fast/speech/scripted/start-exception.html
84 * Modules/speech/SpeechRecognition.cpp:
85 (WebCore::SpeechRecognition::start):
86 (WebCore::SpeechRecognition::stopFunction):
87 (WebCore::SpeechRecognition::abort):
88 (WebCore::SpeechRecognition::didReceiveError):
89 (WebCore::SpeechRecognition::didEnd):
90 (WebCore::SpeechRecognition::SpeechRecognition):
91 * Modules/speech/SpeechRecognition.h:
93 * Modules/speech/SpeechRecognition.idl:
95 2012-07-31 Sheriff Bot <webkit.review.bot@gmail.com>
97 Unreviewed, rolling out r124207.
98 http://trac.webkit.org/changeset/124207
99 https://bugs.webkit.org/show_bug.cgi?id=92773
101 Patch causes crashes on the 64-bit debug builder (and other
102 builders likely) (Requested by zdobersek on #webkit).
105 * GNUmakefile.list.am:
106 * platform/text/gtk/TextCheckerEnchant.cpp: Removed.
107 * platform/text/gtk/TextCheckerEnchant.h: Removed.
109 2012-07-07 Philippe Normand <pnormand@igalia.com>
111 [GStreamer] Live stream support is weak
112 https://bugs.webkit.org/show_bug.cgi?id=90084
114 Reviewed by Martin Robinson.
116 Make sure on-disk buffering is disabled for live streams. It is
117 enabled initially when loading any remote media file if preload is
118 set to Auto. Later on if the player detects that the media is live
119 it disables on-disk buffering. This patch also adds support for
120 caching the total size of the media.
122 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
123 (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
124 (WebCore::MediaPlayerPrivateGStreamer::load): Keep track of the
125 media url as an instance attribute.
126 (WebCore::MediaPlayerPrivateGStreamer::duration): Logging improvement.
127 (WebCore::MediaPlayerPrivateGStreamer::setRate): use the new
128 isLiveStream() method.
129 (WebCore::MediaPlayerPrivateGStreamer::buffered): Ditto.
130 (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Indicate
131 source of duration message.
132 (WebCore::MediaPlayerPrivateGStreamer::fillTimerFired): Perform an
133 anonymous duration change emission, mostly to cache its value.
134 (WebCore::MediaPlayerPrivateGStreamer::totalBytes): Return
135 cached size when available.
136 (WebCore::MediaPlayerPrivateGStreamer::updateStates): Use the new
137 isLiveStream() method and handle state change corner cases for live streams.
138 (WebCore::MediaPlayerPrivateGStreamer::durationChanged): Cache
139 media total size and re-enable on-disk buffering if caching succeeds.
140 (WebCore::MediaPlayerPrivateGStreamer::movieLoadType): New
141 implementation handling on-disk buffered and live streaming cases.
142 (WebCore::MediaPlayerPrivateGStreamer::setPreload): Remember the
143 case where preload is updated from Auto to another value, do
144 on-disk buffering only for Auto preload attribute.
145 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
146 (MediaPlayerPrivateGStreamer):
147 (WebCore::MediaPlayerPrivateGStreamer::isLiveStream): Utility
148 method, a stream is live if it goes to PAUSE without prerolling.
150 2012-07-17 Antonio Gomes <agomes@rim.com>
152 [Blackberry][FullScreen] HTML5 <video> controls are scaled differently depending on the current webpage scale
153 https://bugs.webkit.org/show_bug.cgi?id=90884
156 Reviewed by Rob Buis.
158 The way the BlackBerry port implements the FULLSCREEN_API for media
159 elements might result in the controls being oversized, proportionally
160 to the current page scale. That happens because the fullscreen element
161 gets sized to be as big as the viewport size, and the viewport size might
162 get outstretched to fit to the screen dimensions.
164 In order to fix that, the patch strips out the Page scale factor from
165 the media controls multiplier.
167 Patch also changes many integer-based calculations to be float-based, in
168 order to get the needed precision.
170 Internally reviewed by Jacky Jiang.
172 * platform/blackberry/RenderThemeBlackBerry.cpp:
174 (WebCore::determineFullScreenMultiplier):
175 (WebCore::RenderThemeBlackBerry::adjustSliderThumbSize):
176 (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
177 (WebCore::RenderThemeBlackBerry::adjustSliderTrackStyle):
178 (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
179 (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
181 2012-07-31 Stephen White <senorblanco@chromium.org>
183 Remove the clone() method from FilterOperation (and subclasses).
184 https://bugs.webkit.org/show_bug.cgi?id=92757
186 Reviewed by Kentaro Hara.
188 Since the move to WebFilterOperation in Chromium, this is now dead
191 Covered by existing tests in css3/filters.
193 * platform/graphics/filters/CustomFilterOperation.h:
194 * platform/graphics/filters/FilterOperation.h:
196 2012-07-31 Thiago Marcos P. Santos <thiago.santos@intel.com>
198 Regression(r124135): SVG tests crashing on ports using Cairo
199 https://bugs.webkit.org/show_bug.cgi?id=92752
201 Reviewed by Martin Robinson.
203 * platform/graphics/cairo/PathCairo.cpp:
204 (WebCore::Path::operator=):
206 2012-07-31 Sheriff Bot <webkit.review.bot@gmail.com>
208 Unreviewed, rolling out r124208.
209 http://trac.webkit.org/changeset/124208
210 https://bugs.webkit.org/show_bug.cgi?id=92765
212 it broke compilation on mac (Requested by loislo on #webkit).
215 * GNUmakefile.list.am:
218 * WebCore.vcproj/WebCore.vcproj:
219 * WebCore.xcodeproj/project.pbxproj:
220 * inspector/InspectorAllInOne.cpp:
221 * inspector/InspectorMemoryAgent.cpp:
223 * inspector/MemoryInstrumentationImpl.cpp: Removed.
224 * inspector/MemoryInstrumentationImpl.h: Removed.
226 2012-07-31 Stephen Chenney <schenney@chromium.org>
228 xmlserializer strips xlink from xlink:html svg image tag
229 https://bugs.webkit.org/show_bug.cgi?id=79586
231 Reviewed by Nikolas Zimmermann.
233 Adding code to ensure the correct prefix on attributes in the xml,
234 xmlns and xlink namespaces. We now follow the rules in
235 http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#serializing-html-fragments
236 (circa the time of this change).
238 Rob Buis wrote the original test for this patch and did the initial work.
240 Tests: fast/dom/XMLSerializer-xml-namespace.html
241 svg/custom/xlink-prefix-in-attributes.html
243 * editing/MarkupAccumulator.cpp:
244 (WebCore::attributeIsInSerializedNamespace): Test for an attribute in
245 a specially serialized namespace: xml, xmlns, xlink.
247 (WebCore::MarkupAccumulator::appendAttribute): Check the namespace of
248 attributes upon serialization, and add any necessary prefixes.
249 * html/parser/HTMLTreeBuilder.cpp:
250 (WebCore::adjustForeignAttributes): Use WTF::xmlAtom etc for AtomicString arguments.
252 2012-07-31 Mike Reed <reed@google.com>
254 skia: switch to conical gradient to match css/svg spec for two-point gradients
255 https://bugs.webkit.org/show_bug.cgi?id=92754
257 Reviewed by Stephen White.
259 Switching to skia's TwoPointConical gradient, which has been written explicitly to match the css/svg spec.
260 Leaving the existing TwoPointRadial gradient in skia, for other callers that may want the old behavior.
262 No new tests. existing layouttests exercise this change (9 pending rebaselines associated with this CL).
264 * platform/graphics/skia/GradientSkia.cpp:
265 (WebCore::Gradient::platformGradient):
267 2012-04-06 Ilya Tikhonovsky <loislo@chromium.org>
269 Web Inspector: extract MemoryInstrumentationImpl into separate files for future reusing in unit tests
270 https://bugs.webkit.org/show_bug.cgi?id=92751
272 Reviewed by Yury Semikhatsky.
275 * GNUmakefile.list.am:
278 * WebCore.vcproj/WebCore.vcproj:
279 * inspector/InspectorAllInOne.cpp:
280 * inspector/InspectorMemoryAgent.cpp:
282 * inspector/MemoryInstrumentationImpl.cpp: Added.
284 (WebCore::MemoryInstrumentationImpl::MemoryInstrumentationImpl):
285 (WebCore::MemoryInstrumentationImpl::processDeferredInstrumentedPointers):
286 (WebCore::MemoryInstrumentationImpl::countObjectSize):
287 (WebCore::MemoryInstrumentationImpl::deferInstrumentedPointer):
288 (WebCore::MemoryInstrumentationImpl::visited):
289 (WebCore::MemoryInstrumentationImpl::selfSize):
290 * inspector/MemoryInstrumentationImpl.h: Added.
292 (MemoryInstrumentationImpl):
293 (WebCore::MemoryInstrumentationImpl::totalTypeSize):
295 2012-07-31 Mario Sanchez Prada <msanchez@igalia.com>
297 [GTK] Add a new and reusable enchant-based spellchecker in WebCore
298 https://bugs.webkit.org/show_bug.cgi?id=90269
300 Reviewed by Martin Robinson.
302 Move enchant specific code down to WebCore, into a new class
303 TextCheckerEnchant, that we can use from WK1 and WK2.
305 * GNUmakefile.am: Add flags to handle the SPELLCHECK feature.
306 * GNUmakefile.list.am: Added new files.
307 * platform/text/gtk/TextCheckerEnchant.cpp: Added.
308 (getAvailableDictionariesCallback):
309 (TextCheckerEnchant::TextCheckerEnchant):
310 (TextCheckerEnchant::~TextCheckerEnchant):
311 (TextCheckerEnchant::ignoreWord):
312 (TextCheckerEnchant::learnWord):
313 (TextCheckerEnchant::checkSpellingOfString):
314 (TextCheckerEnchant::getGuessesForWord):
315 (TextCheckerEnchant::updateSpellCheckingLanguages):
316 (TextCheckerEnchant::freeEnchantBrokerDictionaries):
317 * platform/text/gtk/TextCheckerEnchant.h: Added.
319 (TextCheckerEnchant):
320 (WebCore::TextCheckerEnchant::create):
322 2012-07-31 Joe Mason <jmason@rim.com>
324 [BlackBerry] Support Negotiate auth
325 https://bugs.webkit.org/show_bug.cgi?id=91871
327 Reviewed by George Staikos.
329 Add Negotiate to the list of auth schemes allowed in the platform request.
331 Add "success" and "requireCredentials" parameters to notifyAuthReceived (which is now called
332 with success = true on successful authentication, as well as on failures).
334 When success is true, update the stored credential to use the auth scheme actually reported
335 rather than that set in the request. (This is used when Negotiate auth can't get a ticket
336 and falls back to a different supported auth type.)
338 When requireCredentials is false, just set the auth type and start a new request using empty
342 Internally reviewed by Jonathan Dong
344 * platform/network/blackberry/NetworkJob.cpp:
345 (WebCore::NetworkJob::notifyAuthReceived): Add Negotiate to the auth scheme switch. Handle
346 success param by updating auth type in stored credentials; pass requireCredentials param on
347 to sendRequestWithCredentials.
348 (WebCore::NetworkJob::startNewJobWithRequest): Fix typo in increaseRedirectCount parameter
350 (WebCore::NetworkJob::sendRequestWithCredentials): Use empty credentials if
351 requireCredentials is false.
352 * platform/network/blackberry/NetworkJob.h:
354 * platform/network/blackberry/NetworkManager.cpp:
355 (WebCore::NetworkManager::startJob): Add Negotiate to the auth scheme switch.
357 2012-07-31 Alexei Filippov <alexeif@chromium.org>
359 Web Inspector: take into account the whole security origin instead of just host
360 https://bugs.webkit.org/show_bug.cgi?id=92740
362 Reviewed by Pavel Feldman.
364 Make the DOM Storage Agent take into account all the
365 information relevant to the security origin, i.e. protocol, host, and
366 port. Previously only the host was taken into account. That caused
367 inspector to show the first storage only in the case a page operated
368 over several security origins sharing the same host (but having
369 different protocols e.g. http and https).
371 * inspector/InspectorDOMStorageAgent.cpp:
372 (WebCore::InspectorDOMStorageAgent::storageId):
373 (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
374 * inspector/InspectorDOMStorageResource.cpp:
375 (WebCore::InspectorDOMStorageResource::isSameOriginAndType):
376 (WebCore::InspectorDOMStorageResource::bind):
377 * inspector/InspectorDOMStorageResource.h:
378 (InspectorDOMStorageResource):
380 2012-07-31 Keishi Hattori <keishi@webkit.org>
382 Slider ticks are drawn at wrong positions
383 https://bugs.webkit.org/show_bug.cgi?id=92720
385 Reviewed by Kent Tamura.
387 Slider tick marks for vertical sliders were drawn reversed. And the tick
388 mark positions were slightly off from the thumb position because of rounding.
390 No new tests. Covered in input-appearance-range-with-datalist.html.
392 * rendering/RenderTheme.cpp:
393 (WebCore::RenderTheme::paintSliderTicks):
395 2012-07-31 Shinya Kawanaka <shinyak@chromium.org>
397 Older ShadowDOM is still rendered when a new ShadowDOM is added when they don't have any InsertionPoints.
398 https://bugs.webkit.org/show_bug.cgi?id=92456
400 Reviewed by Hajime Morita.
402 When adding a new ShadowRoot to an element having other ShadowRoots, and they don't have any InsretionPoint,
403 the older ShadowDOM is still rendered.
405 When ContentDistributor's validity is 'Undetermined', ElementShadow reattaches the host and the whole shadow
406 subtree. Since adding a new ShadowRoot makes the validity 'Undetermined', we have had to make it 'Undetermined'.
408 This change enables us to remove a unnecessary InvalidationType flag from the code. We should call
409 setValidityUndetermined() instead of using InvalidateAndForceReattach.
411 Test: fast/dom/shadow/invalidate-distribution.html
413 * dom/ElementShadow.cpp:
414 (WebCore::ElementShadow::addShadowRoot): Calls setValidityUndetermined().
415 (WebCore::ElementShadow::removeAllShadowRoots):
416 (WebCore::ElementShadow::setValidityUndetermined):
417 (WebCore::ElementShadow::invalidateDistribution): When validity is undetermined, we will reattach the
418 host and the shadow subtree.
419 * dom/ElementShadow.h:
421 * html/shadow/ContentDistributor.cpp:
422 * html/shadow/ContentDistributor.h:
423 (WebCore::ContentDistributor::setValidity):
424 (ContentDistributor):
425 * html/shadow/InsertionPoint.cpp:
426 (WebCore::InsertionPoint::insertedInto): Calls setValidityUndetermined().
428 2012-07-31 Tommy Widenflycht <tommyw@google.com>
430 Introduce a minimal RTCPeerConnection together with Dictionary changes
431 https://bugs.webkit.org/show_bug.cgi?id=92380
433 Reviewed by Kentaro Hara.
435 This patch introduces a shell RTCPeerConnection together with neccecary changes to
438 The W3C specification can be found here:
439 http://dev.w3.org/2011/webrtc/editor/webrtc.html#rtcpeerconnection
441 Since Dictionaries can't be fully copied around adding
442 get(const String& name, Vector<Dictionary>& result)
443 isn't feasible so I have added a new ArrayValue class.
445 Test: fast/mediastream/RTCPeerConnection.html
448 * GNUmakefile.list.am:
449 * Modules/mediastream/DOMWindowMediaStream.idl:
450 * Modules/mediastream/RTCPeerConnection.cpp: Added.
453 (WebCore::RTCIceServer::create):
454 (WebCore::RTCIceServer::~RTCIceServer):
455 (WebCore::RTCIceServer::uri):
456 (WebCore::RTCIceServer::credential):
457 (WebCore::RTCIceServer::RTCIceServer):
459 (WebCore::RTCConfiguration::create):
460 (WebCore::RTCConfiguration::~RTCConfiguration):
461 (WebCore::RTCConfiguration::appendServer):
462 (WebCore::RTCConfiguration::numberOfServers):
463 (WebCore::RTCConfiguration::server):
464 (WebCore::RTCConfiguration::RTCConfiguration):
465 (WebCore::RTCPeerConnection::parseConfiguration):
466 (WebCore::RTCPeerConnection::create):
467 (WebCore::RTCPeerConnection::RTCPeerConnection):
468 (WebCore::RTCPeerConnection::~RTCPeerConnection):
469 (WebCore::RTCPeerConnection::interfaceName):
470 (WebCore::RTCPeerConnection::scriptExecutionContext):
471 (WebCore::RTCPeerConnection::stop):
472 (WebCore::RTCPeerConnection::eventTargetData):
473 (WebCore::RTCPeerConnection::ensureEventTargetData):
474 * Modules/mediastream/RTCPeerConnection.h: Added.
477 (WebCore::RTCPeerConnection::refEventTarget):
478 (WebCore::RTCPeerConnection::derefEventTarget):
479 * Modules/mediastream/RTCPeerConnection.idl: Added.
483 * WebCore.vcproj/WebCore.vcproj:
484 * WebCore.xcodeproj/project.pbxproj:
485 * bindings/generic/RuntimeEnabledFeatures.h:
486 (WebCore::RuntimeEnabledFeatures::webkitRTCPeerConnectionEnabled):
487 * bindings/js/ArrayValue.cpp: Added.
489 (WebCore::ArrayValue::ArrayValue):
490 (WebCore::ArrayValue::operator=):
491 (WebCore::ArrayValue::isUndefinedOrNull):
492 (WebCore::ArrayValue::length):
493 (WebCore::ArrayValue::get):
494 * bindings/js/ArrayValue.h: Added.
497 * bindings/js/JSBindingsAllInOne.cpp:
498 * bindings/js/JSDictionary.cpp:
499 (WebCore::JSDictionary::convertValue):
501 * bindings/js/JSDictionary.h:
503 * bindings/v8/ArrayValue.cpp: Added.
505 (WebCore::ArrayValue::operator=):
506 (WebCore::ArrayValue::isUndefinedOrNull):
507 (WebCore::ArrayValue::length):
508 (WebCore::ArrayValue::get):
509 * bindings/v8/ArrayValue.h: Added.
512 (WebCore::ArrayValue::ArrayValue):
513 (WebCore::ArrayValue::~ArrayValue):
514 * bindings/v8/Dictionary.cpp:
515 (WebCore::Dictionary::get):
517 * bindings/v8/Dictionary.h:
520 * dom/EventTargetFactory.in:
522 2012-07-31 Raul Hudea <rhudea@adobe.com>
524 Inspector crashes when trying to inspect a page with CSS region styling
525 https://bugs.webkit.org/show_bug.cgi?id=91503
527 Reviewed by Alexander Pavlov.
529 Fix by making sure a CSSRuleSourceData is always created when parsing @-webkit-region rules.
531 Test: inspector/styles/region-style-crash.html
533 * css/CSSGrammar.y: Made ruleset called explicitly markRuleBodyStart instead of depending on updateLastSelectorLineAndPosition to call it.
535 (WebCore::CSSParser::updateLastSelectorLineAndPosition): markRuleBodyStart should be called via at_rule_body_start.
536 * css/CSSPropertySourceData.h:
538 2012-07-31 Sheriff Bot <webkit.review.bot@gmail.com>
540 Unreviewed, rolling out r124179.
541 http://trac.webkit.org/changeset/124179
542 https://bugs.webkit.org/show_bug.cgi?id=92730
544 Breaks Chromium Linux 32 bots with "error: integer constant is
545 too large for 'long' type" in IDBLevelDBCodingTest.cpp
546 (Requested by apavlov on #webkit).
548 * Modules/indexeddb/IDBLevelDBCoding.cpp:
549 (WebCore::IDBLevelDBCoding::encodeByte):
550 (WebCore::IDBLevelDBCoding::encodeBool):
551 (WebCore::IDBLevelDBCoding::encodeInt):
552 (WebCore::IDBLevelDBCoding::encodeVarInt):
553 (WebCore::IDBLevelDBCoding::encodeString):
554 (WebCore::IDBLevelDBCoding::encodeDouble):
555 (WebCore::IDBLevelDBCoding::encodeIDBKey):
556 (WebCore::IDBLevelDBCoding::encodeIDBKeyPath):
557 (WebCore::IDBLevelDBCoding::KeyPrefix::encode):
558 * Modules/indexeddb/IDBLevelDBCoding.h:
561 2012-07-31 Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
563 add Farstream flags/deps to WebKit, for WebRTC
564 https://bugs.webkit.org/show_bug.cgi?id=87524
566 Reviewed by Philippe Normand.
568 Since Farstream will be used as the backend for GTK's WebRTC, this
569 patch adds it as a dependency to the build system.
571 No new features or code changes were added, so new tests aren't necessary.
575 2012-07-31 Zan Dobersek <zandobersek@gmail.com>
577 Unreviewed crash fix after r124135.
579 * platform/graphics/cairo/PathCairo.cpp:
580 (WebCore::Path::Path): Ensure the Cairo path when acquiring its context,
581 crashes ensue otherwise.
583 2012-07-31 Yoshifumi Inoue <yosin@chromium.org>
585 Change Element::isReadOnlyFormControl to Element::shouldMatchReadOnlySelector/shouldMatchReadWriteSelector or HTMLFormControlElement::readOnly
586 https://bugs.webkit.org/show_bug.cgi?id=92602
588 Reviewed by Kent Tamura.
590 This patch replaces Element::isReadOnlyFormControl() by
591 Element::shouldMatchReadOnlySelector/shouldMatchReadOnlySelector or
592 HTMLFormControlElement::readOnly() to make intention of functions
595 No new tests. This patch doesn't change behavior.
597 * css/SelectorChecker.cpp:
598 (WebCore::SelectorChecker::checkOneSelector): Replaced isReadOnlyFormControl() by shouldMatchReadOnlySelector() for :read-only pseudo class, and replaced isReadOnlyFormControl() by shouldMatchReadOnlySelector() for :read-only pseudo class.
600 (WebCore::Element::shouldMatchReadOnlySelector): Added for default implementation.
601 (WebCore::Element::shouldMatchReadWriteSelector): for default implementation.
603 (Element): Removed isReadOnlyFormControl() and added shouldMatchReadOnlySelector and shouldMatchReadWriteSelector.
604 * html/HTMLFormControlElement.cpp:
605 (WebCore::HTMLFormControlElement::shouldMatchReadOnlySelector): Added.
606 (WebCore::HTMLFormControlElement::shouldMatchReadWriteSelector): Added.
607 * html/HTMLFormControlElement.h:
608 (HTMLFormControlElement): Removed isReadOnlyFormControl() and added shouldMatchReadOnlySelector and shouldMatchReadWriteSelector.
609 * html/shadow/SliderThumbElement.cpp:
610 (WebCore::SliderThumbElement::shouldMatchReadOnlySelector): Added.
611 (WebCore::SliderThumbElement::shouldMatchReadWriteSelector): Added.
612 (WebCore::SliderThumbElement::willRespondToMouseMoveEvents): Replaced isReadOnlyFormControl() by readOnly().
613 (WebCore::SliderThumbElement::willRespondToMouseClickEvents): ditto.
614 (SliderThumbElement):
615 * html/shadow/TextControlInnerElements.cpp:
616 (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents): Replaced isReadOnlyFormControl() by readOnly().
617 (WebCore::SpinButtonElement::willRespondToMouseMoveEvents): ditto.
618 (WebCore::SpinButtonElement::willRespondToMouseClickEvents): ditto.
619 (WebCore::SpinButtonElement::shouldMatchReadOnlySelector): Added.
620 (WebCore::SpinButtonElement::shouldMatchReadWriteSelector): Added.
621 (WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents): Replaced isReadOnlyFormControl() by readOnly().
622 * html/shadow/TextControlInnerElements.h:
623 (SpinButtonElement): Removed isReadOnlyFormControl() and added shouldMatchReadOnlySelector and shouldMatchReadWriteSelector.
624 * rendering/RenderTheme.cpp:
625 (WebCore::RenderTheme::isReadOnlyControl): Replaced isReadOnlyControl() by shouldMatchReadOnlySelector().
627 2012-07-31 Xingnan Wang <xingnan.wang@intel.com>
629 IndexedDB: Size the Vector in encodeInt/encodeVarInt/encodeString
630 https://bugs.webkit.org/show_bug.cgi?id=91813
632 Reviewed by Kentaro Hara.
634 To avoid memory re-allocation in Vector, init the capability or size of Vector in encodeInt(), encodeVarInt(),
635 encodeBool(), encodeIDBKey() etc.
637 No new tests - Low level functions covered by existing layout tests and also covered by Chromium
638 webkit_unit_tests IDBLevelIDBCodingTest.* which validates the sizes of buffers returned by encodeVarInt.
640 * Modules/indexeddb/IDBLevelDBCoding.cpp:
641 (WebCore::IDBLevelDBCoding::encodeInt):
642 (WebCore::IDBLevelDBCoding::encodeVarInt):
643 (WebCore::IDBLevelDBCoding::encodeString):
645 2012-07-30 Huang Dongsung <luxtella@company100.net>
647 [Texmap] Remove the backing store after 'style.visibility' for an element sets 'hidden'.
648 https://bugs.webkit.org/show_bug.cgi?id=92492
650 Reviewed by Noam Rosenthal.
652 This patch's purpose is to save vram memory.
653 When visibility of the element sets hidden, we do not need to draw the element,
654 so we do not need to keep a texture of the backing store.
655 Currently, Texmap does not draw the element with visibility:hidden because
656 RenderLayerBacking::paintIntoLayer does not draw anything.
657 This patch just removes unused textures.
659 No new tests - no new testable functionality.
661 * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
662 (WebCore::GraphicsLayerTextureMapper::setContentsVisible):
664 * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
665 (GraphicsLayerTextureMapper):
666 * platform/graphics/texmap/TextureMapperLayer.cpp:
667 (WebCore::TextureMapperLayer::updateBackingStore):
668 (WebCore::TextureMapperLayer::paintSelf):
669 (WebCore::TextureMapperLayer::isVisible):
670 (WebCore::TextureMapperLayer::syncCompositingStateSelf):
671 * platform/graphics/texmap/TextureMapperLayer.h:
673 (WebCore::TextureMapperLayer::State::State):
675 2012-07-30 Keishi Hattori <keishi@webkit.org>
677 Implement datalist UI for input type color for Chromium
678 https://bugs.webkit.org/show_bug.cgi?id=92075
680 Reviewed by Kent Tamura.
682 Test: platform/chromium/fast/forms/color/color-suggestion-picker-appearance.html
684 * rendering/RenderThemeChromiumCommon.cpp:
685 (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Added color to types supporting datalist.
687 2012-07-30 Sheriff Bot <webkit.review.bot@gmail.com>
689 Unreviewed, rolling out r124171.
690 http://trac.webkit.org/changeset/124171
691 https://bugs.webkit.org/show_bug.cgi?id=92712
693 Start failing fast/css/square-button-appearance.html
694 (Requested by yosin on #webkit).
696 * css/SelectorChecker.cpp:
697 (WebCore::SelectorChecker::checkOneSelector):
701 (WebCore::Element::isReadOnlyFormControl):
702 * html/HTMLFormControlElement.h:
703 (WebCore::HTMLFormControlElement::isReadOnlyFormControl):
704 * html/shadow/SliderThumbElement.cpp:
705 (WebCore::SliderThumbElement::isReadOnlyFormControl):
706 (WebCore::SliderThumbElement::willRespondToMouseMoveEvents):
707 (WebCore::SliderThumbElement::willRespondToMouseClickEvents):
708 * html/shadow/SliderThumbElement.h:
709 (SliderThumbElement):
710 * html/shadow/TextControlInnerElements.cpp:
711 (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents):
712 (WebCore::SpinButtonElement::willRespondToMouseMoveEvents):
713 (WebCore::SpinButtonElement::willRespondToMouseClickEvents):
714 (WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents):
715 * html/shadow/TextControlInnerElements.h:
716 (WebCore::SpinButtonElement::isReadOnlyFormControl):
717 * rendering/RenderTheme.cpp:
718 (WebCore::RenderTheme::isReadOnlyControl):
720 2012-07-30 Yoshifumi Inoue <yosin@chromium.org>
722 [CSS] Change Element::isReadOnlyFormControl to shouldMatchReadWriteSelector or HTMLTextFormControlElement::readOnly
723 https://bugs.webkit.org/show_bug.cgi?id=92602
725 Reviewed by Kent Tamura.
727 This patch renames Element::isReadOnlyFormControl() to Element::shouldMatchReadWriteSelector()
728 or HTMLTextFormControlElement::readOnly() to make intention of
729 shouldMatchReadWriteSelector(was isReadOnlyFormControl) self descriptive.
731 No new tests. This patch doesn't change behavior.
733 * css/SelectorChecker.cpp:
734 (WebCore::SelectorChecker::checkOneSelector): Replaced isReadOnlyFormControl() by shouldMatchReadWriteSelector().
736 (WebCore::Element::shouldMatchReadWriteSelector): Added default implementation.
738 (WebCore::Element::shouldMatchReadWriteSelector): Replaced isReadOnlyFormControl() by shouldMatchReadWriteSelector().
739 * html/HTMLFormControlElement.h:
740 * html/shadow/SliderThumbElement.cpp:
741 (WebCore::SliderThumbElement::shouldMatchReadWriteSelector): Replaced isReadOnlyFormControl() by shouldMatchReadWriteSelector().
742 (WebCore::SliderThumbElement::willRespondToMouseMoveEvents): Replaced isReadOnlyFormControl() by readOnly().
743 (WebCore::SliderThumbElement::willRespondToMouseClickEvents): ditto.
744 * html/shadow/SliderThumbElement.h:
745 (SliderThumbElement): Replaced isReadOnlyFormControl() by shouldMatchReadWriteSelector().
746 * html/shadow/TextControlInnerElements.cpp:
747 (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents): Replaced isReadOnlyFormControl() by readOnly().
748 (WebCore::SpinButtonElement::willRespondToMouseMoveEvents): Replaced isReadOnlyFormControl() by readOnly().
749 (WebCore::SpinButtonElement::willRespondToMouseClickEvents): Replaced isReadOnlyFormControl() by readOnly().
750 (WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents): Replaced isReadOnlyFormControl() by readOnly().
751 * html/shadow/TextControlInnerElements.h:
752 * rendering/RenderTheme.cpp:
753 (WebCore::RenderTheme::isReadOnlyControl): Replaced isReadOnlyFormControl() by shouldMatchReadWriteSelector().
755 2012-07-30 Julien Chaffraix <jchaffraix@webkit.org>
757 Remove overflow: scroll handling in block flow layout methods
758 https://bugs.webkit.org/show_bug.cgi?id=92689
760 Reviewed by Simon Fraser.
762 The overflow: scroll scrollbars creation was done at layout time for all RenderBlocks and
763 descendants. This was not only wrong ('overflow' only changes at style change time) but it
764 was also introducing some code duplication.
766 The gist of this change is to share the code by moving it to RenderLayer::updateScrollbarsAfterStyleChange,
767 this includes the code from bug 69993 to special case list box part.
769 Covered by existing tests:
770 - All fast/overflow ones.
771 - For the list box change:
772 fast/forms/select-overflow-scroll-inherited.html
773 fast/forms/select-overflow-scroll.html
775 css3/flexbox/preferred-widths-orthogonal.html
776 css3/flexbox/preferred-widths.html
778 * rendering/RenderBlock.cpp:
779 (WebCore::RenderBlock::layoutBlock):
780 * rendering/RenderDeprecatedFlexibleBox.cpp:
781 (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
782 * rendering/RenderGrid.cpp:
783 (WebCore::RenderGrid::layoutBlock):
784 * rendering/RenderFlexibleBox.cpp:
785 (WebCore::RenderFlexibleBox::layoutBlock):
786 Removed the common code here.
788 * rendering/RenderFlexibleBox.cpp:
789 (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
790 Changed to an ASSERT now that the right scrollbars are created. This is
791 fine as overflow-x/y are physical coordinates and our access was following that.
793 * rendering/RenderLayer.cpp:
794 (WebCore::RenderLayer::invalidateScrollbarRect):
795 Added an early return here if we are not attached yet as RenderLayer::styleChanged
796 is called at attachment time before we are inserted in the tree. This is fine as the
797 scrollbars are part of the object which will be painted after the first layout.
799 (WebCore::overflowRequiresAScrollbar):
800 (WebCore::overflowDefinesAutomaticScrollbar):
801 Split the logic in those 2 functions.
803 (WebCore::RenderLayer::updateScrollbarsAfterLayout):
804 Updated to use the require / can-have functions. Also added
805 an early return for list box parts as required by bug 69993.
807 (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
808 Added an early return for list box parts as required by bug 69993,
809 also removed some unneeded NULL-checks that were added for list box parts.
811 2012-07-30 Vivek Galatage <vivekgalatage@gmail.com>
813 fillWithEmptyClients method should also initialize chromeClient with EmptyChromeClient
814 https://bugs.webkit.org/show_bug.cgi?id=92703
816 Reviewed by Kent Tamura.
818 fillWithEmptyClients should also intialize PageClients.chromeClient with EmptyChromeClient
819 as its required for creating a Empty page and to minimize the exported symbols.
821 No new tests as no change in functionality.
823 * loader/EmptyClients.cpp:
824 (WebCore::fillWithEmptyClients):
826 2012-07-30 Adrienne Walker <enne@google.com>
828 [chromium] Wrap ScrollbarLayerChromium in WebScrollbarLayer
829 https://bugs.webkit.org/show_bug.cgi?id=91032
831 Reviewed by James Robinson.
833 Modify ScrollingCoordinatorChromium to operate on WebScrollbarLayer
834 instead of ScrollbarLayerChromium. This removes the dependency on
835 ScrollbarLayerChromium.
837 No change in functionality, so no new tests.
839 * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
840 (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
841 (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
842 (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
843 (ScrollingCoordinatorPrivate):
844 (WebCore::createScrollbarLayer):
846 2012-07-30 Ryosuke Niwa <rniwa@webkit.org>
848 Another Qt build fix attempt after r124098.
849 "interface" is a keyword. Don't use it.
851 * dom/GestureEvent.cpp:
852 (WebCore::GestureEvent::interfaceName):
854 2012-07-30 Elliott Sprehn <esprehn@gmail.com>
856 Make QuotesData use a Vector of pairs
857 https://bugs.webkit.org/show_bug.cgi?id=92448
859 Reviewed by Julien Chaffraix.
861 QuotesData::create returned an array of memory that contained in place instantiations
862 of a QuotesData and then String instances. This changes the code to use a Vector of
863 pairs making it safer and ensuring that quotes are always balanced. This also uses a
864 HashMap directly in the QuoteRenderer instead of building it on first access reducing
865 the amount of code needed for picking quotes by language.
867 Test: fast/css-generated-content/close-quote-negative-depth.html
869 * css/StyleResolver.cpp:
870 (WebCore::StyleResolver::collectMatchingRulesForList): Create pairs and use the new QuotesData API.
871 * rendering/RenderQuote.cpp:
873 (WebCore::quotesDataLanguageMap): New function that returns the HashMap of languages.
874 (WebCore::basicQuotesData): Returns the simple form of quotes, " and '.
875 (WebCore::defaultQuotes): Changed to use the new map.
876 (WebCore::RenderQuote::styleDidChange):
877 (WebCore::RenderQuote::originalText): Changed to use the new getOpenQuote and getCloseQuote which ensure bounds checks.
878 * rendering/style/QuotesData.cpp:
879 (WebCore::QuotesData::create): Now returns a plain instance of QuotesData without the in place allocation.
881 (WebCore::QuotesData::addPair): Adds an std::pair of strings ensuring quotes are always balanced.
882 (WebCore::QuotesData::getOpenQuote):
883 (WebCore::QuotesData::getCloseQuote):
884 (WebCore::QuotesData::equals): Renamed equals (added the s).
885 * rendering/style/QuotesData.h:
886 (WebCore::QuotesData::create):
888 (WebCore::QuotesData::QuotesData):
889 * rendering/style/RenderStyle.cpp:
890 (WebCore::RenderStyle::setQuotes):
891 * rendering/style/StyleRareInheritedData.cpp:
892 (WebCore::StyleRareInheritedData::operator==):
894 2012-07-30 MORITA Hajime <morrita@google.com>
896 Node::replaceChild() can create bad DOM topology with MutationEvent
897 https://bugs.webkit.org/show_bug.cgi?id=92619
899 Reviewed by Ryosuke Niwa.
901 Node::replaceChild() calls insertBeforeCommon() after dispatching
902 a MutationEvent event for removeChild(). But insertBeforeCommon()
903 expects call sites to check the invariant and doesn't have
904 suffient check. So a MutationEvent handler can let some bad tree
905 topology to slip into insertBeforeCommon().
907 This change adds a guard for checking the invariant using
908 checkReplaceChild() between removeChild() and insertBeforeCommon().
910 Test: fast/events/mutation-during-replace-child.html
912 * dom/ContainerNode.cpp:
913 (WebCore::ContainerNode::replaceChild): Added a guard.
915 2012-07-30 Ryosuke Niwa <rniwa@webkit.org>
917 Qt Windows build fix attempt after r124098.
919 * dom/GestureEvent.cpp:
921 2012-07-30 Wei James <james.wei@intel.com>
923 [Chromium] Enable web audio IPP for x86 chromium android
924 https://bugs.webkit.org/show_bug.cgi?id=91973
926 Reviewed by Tony Chang.
928 Include the IPP libraries at link-time for Android builds when
929 compiling the Web Audio API with IPP support.
931 * WebCore.gyp/WebCore.gyp:
933 2012-07-30 Yoshifumi Inoue <yosin@chromium.org>
935 [Forms] Get rid of Element::isReadOnlyFormControl other than CSS related
936 https://bugs.webkit.org/show_bug.cgi?id=92612
938 Reviewed by Kent Tamura.
940 This patch replaces Element::isReadOnlyFormControl() not related to
941 CSS selector matching to HTMLFormControlElement::readOnly() for
942 preparation of introducing Element::shouldMatchReadWriteSelector(), bug 92602.
944 No new tests. This patch doesn't change behavior.
946 * html/shadow/SliderThumbElement.cpp:
947 (WebCore::SliderThumbElement::defaultEventHandler): Changed isReadOnlyFormControl() to readOnly().
948 * html/shadow/TextControlInnerElements.cpp:
949 (WebCore::SearchFieldCancelButtonElement::defaultEventHandler): Changed isReadOnlyFormControl() to readOnly().
950 (WebCore::SpinButtonElement::defaultEventHandler): ditto.
951 (WebCore::SpinButtonElement::step): ditto.
952 (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): ditto.
953 (WebCore::InputFieldSpeechButtonElement::setRecognitionResult): ditto.
954 * rendering/RenderTextControl.cpp:
955 (updateUserModifyProperty): Changed isReadOnlyFormControl() to readOnly().
956 * rendering/RenderThemeMac.mm:
957 (WebCore::RenderThemeMac::paintSearchFieldCancelButton): Changed isReadOnlyFormControl() to readOnly().
959 2012-07-30 Eric Seidel <eric@webkit.org>
961 Grid Demo spends 1.5% of total time allocating Path objects in RenderBoxModelObject::paintBorderSides
962 https://bugs.webkit.org/show_bug.cgi?id=92252
964 Reviewed by Simon Fraser.
966 This change introduces the concept of a "null Path" very similar to a null WTF::String.
967 Just like String functions as a RefPtr around a StringImpl, Path (for most ports)
968 functions as an OwnPtr around a PlatformPathPtr.
970 In various places in the code, we declare a local Path variable, but don't necessarily
971 use that Path variable in all code paths, or might pass that Path variable along to GraphicsContext
972 functions, without ever actually adding points to that Path.
973 On most platforms, this Path default constructor was causing a malloc!
974 In some of these case, the code-path in question (like paintBorderSides) can be quite hot.
975 Introducing this null-Path and delaying instantiation of the PlatformPath object
976 until it's actually needed, saves a malloc for these hot paths.
978 To test this, I loaded a few popular pages, and added printfs to both the Path constructor
979 and destructor, logging during construction and destruction when the path was still null at destruction time.
981 This simple testing showed this to be a small win (avoiding mallocs) on many sites and a huge win for Google Spreadsheets:
982 apple.com: 147 Paths created, 9 (6%) destroyed null.
983 google.com: 58 Paths created, 26 (44%) destroyed null (google seems creating 5 paths every second after load? 1 of which is destroyed empty.)
984 amazon.com: 130 Paths created, 130 (100%) destroyed null.
985 Loading an empty spreadsheet from drive.google.com: 5237 created, 4861 destroyed null (92%!) :)
987 * platform/graphics/Path.h:
989 (WebCore::Path::isNull):
990 (WebCore::Path::ensurePlatformPath):
991 * platform/graphics/cairo/CairoUtilities.cpp:
992 (WebCore::appendWebCorePathToCairoContext):
993 * platform/graphics/cairo/GraphicsContextCairo.cpp:
994 (WebCore::GraphicsContext::fillPath):
995 (WebCore::GraphicsContext::strokePath):
996 (WebCore::GraphicsContext::clipPath):
997 (WebCore::GraphicsContext::clip):
998 * platform/graphics/cairo/PathCairo.cpp:
999 (WebCore::Path::Path):
1000 (WebCore::Path::~Path):
1001 (WebCore::Path::ensurePlatformPath):
1003 (WebCore::Path::operator=):
1004 (WebCore::Path::clear):
1005 (WebCore::Path::isEmpty):
1006 (WebCore::Path::currentPoint):
1007 (WebCore::Path::translate):
1008 (WebCore::Path::moveTo):
1009 (WebCore::Path::addLineTo):
1010 (WebCore::Path::addRect):
1011 (WebCore::Path::addQuadCurveTo):
1012 (WebCore::Path::addBezierCurveTo):
1013 (WebCore::Path::addArc):
1014 (WebCore::Path::addArcTo):
1015 (WebCore::Path::addEllipse):
1016 (WebCore::Path::closeSubpath):
1017 (WebCore::Path::boundingRect):
1018 (WebCore::Path::strokeBoundingRect):
1019 (WebCore::Path::contains):
1020 (WebCore::Path::strokeContains):
1021 (WebCore::Path::apply):
1022 (WebCore::Path::transform):
1023 * platform/graphics/cg/GraphicsContextCG.cpp:
1024 (WebCore::GraphicsContext::drawPath):
1025 (WebCore::GraphicsContext::fillPath):
1026 (WebCore::GraphicsContext::strokePath):
1027 (WebCore::GraphicsContext::clipPath):
1028 (WebCore::GraphicsContext::clipOut):
1029 * platform/graphics/cg/PathCG.cpp:
1030 (WebCore::Path::Path):
1031 (WebCore::Path::~Path):
1033 (WebCore::Path::ensurePlatformPath):
1034 (WebCore::Path::operator=):
1035 (WebCore::Path::contains):
1036 (WebCore::Path::strokeContains):
1037 (WebCore::Path::translate):
1038 (WebCore::Path::boundingRect):
1039 (WebCore::Path::fastBoundingRect):
1040 (WebCore::Path::strokeBoundingRect):
1041 (WebCore::Path::moveTo):
1042 (WebCore::Path::addLineTo):
1043 (WebCore::Path::addQuadCurveTo):
1044 (WebCore::Path::addBezierCurveTo):
1045 (WebCore::Path::addArcTo):
1046 (WebCore::Path::platformAddPathForRoundedRect):
1047 (WebCore::Path::closeSubpath):
1048 (WebCore::Path::addArc):
1049 (WebCore::Path::addRect):
1050 (WebCore::Path::addEllipse):
1051 (WebCore::Path::clear):
1052 (WebCore::Path::isEmpty):
1053 (WebCore::Path::currentPoint):
1054 (WebCore::Path::apply):
1055 * platform/graphics/gpu/LoopBlinnPathProcessor.cpp:
1057 (WebCore::LoopBlinnPathProcessor::buildContours):
1058 * platform/graphics/mac/GraphicsContextMac.mm:
1059 (WebCore::GraphicsContext::drawFocusRing):
1060 * platform/graphics/openvg/PainterOpenVG.cpp:
1061 (WebCore::PainterOpenVG::drawPath):
1062 * platform/graphics/skia/GraphicsContextSkia.cpp:
1063 (WebCore::GraphicsContext::clip):
1064 (WebCore::GraphicsContext::canvasClip):
1065 (WebCore::GraphicsContext::clipOut):
1066 (WebCore::GraphicsContext::clipPath):
1067 (WebCore::GraphicsContext::fillPath):
1068 (WebCore::GraphicsContext::strokePath):
1069 * platform/graphics/skia/PathSkia.cpp:
1070 (WebCore::Path::Path):
1071 (WebCore::Path::~Path):
1073 (WebCore::Path::ensurePlatformPath):
1074 (WebCore::Path::operator=):
1075 (WebCore::Path::isEmpty):
1076 (WebCore::Path::hasCurrentPoint):
1077 (WebCore::Path::currentPoint):
1078 (WebCore::Path::contains):
1079 (WebCore::Path::translate):
1080 (WebCore::Path::boundingRect):
1081 (WebCore::Path::moveTo):
1082 (WebCore::Path::addLineTo):
1083 (WebCore::Path::addQuadCurveTo):
1084 (WebCore::Path::addBezierCurveTo):
1085 (WebCore::Path::addArcTo):
1086 (WebCore::Path::closeSubpath):
1087 (WebCore::Path::addArc):
1088 (WebCore::Path::addRect):
1089 (WebCore::Path::addEllipse):
1090 (WebCore::Path::clear):
1091 (WebCore::Path::apply):
1092 (WebCore::Path::transform):
1093 (WebCore::Path::strokeBoundingRect):
1094 (WebCore::Path::strokeContains):
1095 * platform/graphics/wince/GraphicsContextWinCE.cpp:
1096 (WebCore::GraphicsContext::fillPath):
1097 (WebCore::GraphicsContext::strokePath):
1098 * platform/graphics/wx/GraphicsContextWx.cpp:
1099 (WebCore::GraphicsContext::clipPath):
1100 (WebCore::GraphicsContext::fillPath):
1101 (WebCore::GraphicsContext::strokePath):
1102 * platform/graphics/wx/PathWx.cpp:
1103 (WebCore::Path::Path):
1104 (WebCore::Path::~Path):
1105 (WebCore::Path::boundingRect):
1106 (WebCore::Path::operator=):
1107 (WebCore::Path::ensurePlatformPath):
1109 (WebCore::Path::clear):
1110 (WebCore::Path::moveTo):
1111 (WebCore::Path::addLineTo):
1112 (WebCore::Path::addQuadCurveTo):
1113 (WebCore::Path::addBezierCurveTo):
1114 (WebCore::Path::addArcTo):
1115 (WebCore::Path::closeSubpath):
1116 (WebCore::Path::addArc):
1117 (WebCore::Path::addRect):
1118 (WebCore::Path::addEllipse):
1119 (WebCore::Path::transform):
1120 (WebCore::Path::currentPoint):
1122 2012-07-30 Dominik Röttsches <dominik.rottsches@intel.com>
1124 Avoid Assertion Failure in HarfBuzzRun::characterIndexForXPosition
1125 https://bugs.webkit.org/show_bug.cgi?id=92376
1127 Reviewed by Tony Chang.
1129 Previously, the if condition in offsetForPosition gating the call to
1130 characterIndexForXPosition was comparing a different value than what was actually used
1131 as the argument to calling it. In some cases, this can lead to a minuscule difference
1132 when comparing the two floats - enough to trigger the assertion. To resolve this,
1133 the accuracy of the index calculation is improved by changing the types from int
1134 to floats and rephrasing the if condition to be exactly the same as what is checked
1135 for in the assertion.
1137 Manual test ManualTests/harfbuzz-mouse-selection-crash.html added
1138 which reliably reproduces the assertion failure before this change.
1140 * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
1141 (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition): Types changed to float.
1142 (WebCore::HarfBuzzShaper::offsetForPosition): Types changed to float, if condition rephrased.
1143 * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
1146 2012-06-29 James Robinson <jamesr@chromium.org>
1148 [chromium] Remove WebTransformationMatrix::mapPoint overrides
1149 https://bugs.webkit.org/show_bug.cgi?id=90329
1151 Reviewed by Adrienne Walker.
1153 Add more functionality for mapping points to CCMathUtil and use it in CCLayerSorter / drawTileQuad. These
1154 mappings should never clip.
1156 * platform/chromium/support/WebTransformationMatrix.cpp:
1157 * platform/graphics/chromium/LayerRendererChromium.cpp:
1158 (WebCore::LayerRendererChromium::drawTileQuad):
1159 * platform/graphics/chromium/cc/CCLayerSorter.cpp:
1160 (WebCore::CCLayerSorter::LayerShape::LayerShape):
1161 * platform/graphics/chromium/cc/CCMathUtil.cpp:
1162 (WebCore::mapHomogeneousPoint):
1163 (WebCore::CCMathUtil::mapPoint):
1165 * platform/graphics/chromium/cc/CCMathUtil.h:
1166 (WebCore::HomogeneousCoordinate::cartesianPoint3d):
1167 (HomogeneousCoordinate):
1170 2012-07-30 Anders Carlsson <andersca@apple.com>
1172 Crash in logging code if MIME type is null
1173 https://bugs.webkit.org/show_bug.cgi?id=92683
1174 <rdar://problem/11985295>
1176 Reviewed by Dan Bernstein.
1178 If the MIME type is null, try to figure it out from the URL extension. If this fails, return early instead of crashing
1179 trying to insert the null string into a hash set.
1181 * loader/SubframeLoader.cpp:
1182 (WebCore::logPluginRequest):
1184 2012-07-30 Alexis Menard <alexis.menard@openbossa.org>
1186 Build fix with newer bison 2.6.
1187 https://bugs.webkit.org/show_bug.cgi?id=92264
1189 Reviewed by Adam Barth.
1191 As stated in http://www.gnu.org/software/bison/manual/html_node/Table-of-Symbols.html
1192 YYLEX_PARAM and YYPARSE_PARAM are depecreated since version 1.875. So far all Mac OS
1193 version I had access to as well as recent Linux runs at least version 2.3 so it's safe
1194 to use the replacement of these deprecated macros in favor of %lex-param and %parse-param.
1195 As announced http://lists.gnu.org/archive/html/info-gnu/2012-07/msg00011.html with the release
1196 of version 2.6 YYLEX_PARAM and YYPARSE_PARAM are not supported anymore.
1198 No new tests : build fix and the patch should not trigger any regressions
1201 * css/CSSParser.cpp:
1202 * xml/XPathGrammar.y: Refactored a bit to not use an intermediate PARSER define.
1203 * xml/XPathParser.cpp: bison 2.6 declare xpathyyparse in the .h file now, i.e. XPathGrammar.h
1204 therefore including this file within the namespace {} declarations leads to xpathyyparse being
1205 defined part of WebCore::XPath namespaces but the actual implementation of xpathyyparse is in XPathGrammar.cpp
1206 (generated) and not implemented within the WebCore::XPath so it lead to linking issues. Last, XPathGrammar.h needs
1207 to be included after the other includes as it uses some XPath types. It breaks the style but CSSParser.cpp is doing the same.
1209 2012-07-30 Sadrul Habib Chowdhury <sadrul@chromium.org>
1211 Propagate gesture events to plugins.
1212 https://bugs.webkit.org/show_bug.cgi?id=92281
1214 Reviewed by Adam Barth.
1216 Propagate gesture events to plugins. This change does not expose the gesture events
1217 to JavaScript, since there is no spec for that at the moment. Exposing gesture events
1218 to JavaScript will be done separately, once there is a spec for it.
1220 Test: platform/chromium/plugins/gesture-events.html
1223 * GNUmakefile.list.am:
1226 * WebCore.xcodeproj/project.pbxproj:
1229 (WebCore::EventNames::isGestureEventType):
1231 * dom/GestureEvent.cpp: Added.
1233 (WebCore::GestureEvent::create):
1234 (WebCore::GestureEvent::initGestureEvent):
1235 (WebCore::GestureEvent::interfaceName):
1236 (WebCore::GestureEvent::GestureEvent):
1237 (WebCore::GestureEventDispatchMediator::GestureEventDispatchMediator):
1238 (WebCore::GestureEventDispatchMediator::event):
1239 (WebCore::GestureEventDispatchMediator::dispatchEvent):
1240 * dom/GestureEvent.h: Added.
1243 (WebCore::GestureEvent::~GestureEvent):
1244 (WebCore::GestureEvent::deltaX):
1245 (WebCore::GestureEvent::deltaY):
1246 (WebCore::GestureEvent::GestureEvent):
1247 (GestureEventDispatchMediator):
1248 (WebCore::GestureEventDispatchMediator::create):
1251 (WebCore::Node::dispatchGestureEvent):
1255 * page/EventHandler.cpp:
1256 (WebCore::EventHandler::clear):
1257 (WebCore::EventHandler::handleGestureEvent):
1258 * page/EventHandler.h:
1260 2012-07-30 John Bates <jbates@google.com>
1262 Plumb vsync-enabled flag up to compositor thread and support disable-vsync
1263 https://bugs.webkit.org/show_bug.cgi?id=92323
1265 Reviewed by James Robinson.
1267 * platform/graphics/chromium/cc/CCFrameRateController.cpp:
1268 (WebCore::CCFrameRateController::CCFrameRateController):
1269 (WebCore::CCFrameRateController::disableTimeSourceThrottling):
1271 (WebCore::CCFrameRateController::setActive):
1272 (WebCore::CCFrameRateController::postManualTick):
1273 (WebCore::CCFrameRateController::onTimerFired):
1274 (WebCore::CCFrameRateController::didBeginFrame):
1275 (WebCore::CCFrameRateController::didFinishFrame):
1276 * platform/graphics/chromium/cc/CCFrameRateController.h:
1278 (CCFrameRateController):
1279 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1280 (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
1281 (CCLayerTreeSettings):
1282 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1283 (WebCore::CCThreadProxy::CCThreadProxy):
1284 (WebCore::CCThreadProxy::initializeImplOnImplThread):
1285 * platform/graphics/chromium/cc/CCThreadProxy.h:
1288 2012-07-30 James Robinson <jamesr@chromium.org>
1290 [chromium] Add miscellaneous missing includes and OVERRIDE declarations in compositor code
1291 https://bugs.webkit.org/show_bug.cgi?id=92680
1293 Reviewed by Adrienne Walker.
1295 * platform/graphics/chromium/TextureCopier.h:
1296 (AcceleratedTextureCopier):
1297 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1298 (CCLayerTreeHostImpl):
1299 * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
1300 * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
1301 * platform/graphics/chromium/cc/CCResourceProvider.h:
1304 2012-07-30 Adrienne Walker <enne@google.com>
1306 [chromium] Remove dependency on ScrollbarTheme from the compositor
1307 https://bugs.webkit.org/show_bug.cgi?id=90528
1309 Reviewed by James Robinson.
1311 Tested by existing layout tests.
1313 ScrollbarLayerChromium is modified to use the Platform API for
1314 WebScrollbar, WebScrollbarThemePainter, and WebScrollbarThemeGeometry.
1315 This prevents API dependencies from the compositor code into WebCore
1316 scrollbar and theme code.
1318 CCScrollbarLayerImpl::CCScrollbar now implements the WebScrollbar API
1319 instead of the ScrollbarThemeClient API.
1321 Also, CCScrollbarLayerImpl now no longer gets the theme from a static
1322 accessor. It now gets a "copy" of the theme from the main thread via
1323 WebScrollbarThemeGeometry, which is more correct for render theme
1324 scrollbars which were previously using the native theme to get part
1325 geometry. Using the correct theme unfortunately causes crashes due to
1326 bad casts in RenderScrollbarTheme, so this patch turns back off the
1327 use of ScrollbarLayerChromium for themed scrollbars until that can be
1330 * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
1331 (WebCore::createScrollbarLayer):
1332 * platform/ScrollbarThemeClient.h:
1333 (ScrollbarThemeClient):
1334 * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
1335 (WebCore::ScrollbarLayerChromium::create):
1336 (WebCore::ScrollbarLayerChromium::ScrollbarLayerChromium):
1337 (WebCore::ScrollbarLayerChromium::pushPropertiesTo):
1338 (WebCore::ScrollbarBackgroundPainter::create):
1339 (WebCore::ScrollbarBackgroundPainter::ScrollbarBackgroundPainter):
1340 (ScrollbarBackgroundPainter):
1341 (WebCore::ScrollbarThumbPainter::create):
1342 (WebCore::ScrollbarThumbPainter::ScrollbarThumbPainter):
1343 (ScrollbarThumbPainter):
1344 (WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
1345 (WebCore::ScrollbarLayerChromium::setTexturePriorities):
1346 (WebCore::ScrollbarLayerChromium::update):
1347 * platform/graphics/chromium/ScrollbarLayerChromium.h:
1348 (ScrollbarLayerChromium):
1349 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
1350 (WebCore::CCScrollbarLayerImpl::CCScrollbarLayerImpl):
1351 (WebCore::CCScrollbarLayerImpl::setScrollbarData):
1352 (WebCore::toUVRect):
1353 (WebCore::CCScrollbarLayerImpl::appendQuads):
1354 (WebCore::CCScrollbarLayerImpl::CCScrollbar::isOverlay):
1355 (WebCore::CCScrollbarLayerImpl::CCScrollbar::value):
1356 (WebCore::CCScrollbarLayerImpl::CCScrollbar::location):
1357 (WebCore::CCScrollbarLayerImpl::CCScrollbar::size):
1358 (WebCore::CCScrollbarLayerImpl::CCScrollbar::enabled):
1359 (WebCore::CCScrollbarLayerImpl::CCScrollbar::maximum):
1360 (WebCore::CCScrollbarLayerImpl::CCScrollbar::totalSize):
1361 (WebCore::CCScrollbarLayerImpl::CCScrollbar::isScrollViewScrollbar):
1362 (WebCore::CCScrollbarLayerImpl::CCScrollbar::isScrollableAreaActive):
1363 (WebCore::CCScrollbarLayerImpl::CCScrollbar::getTickmarks):
1364 (WebCore::CCScrollbarLayerImpl::CCScrollbar::controlSize):
1365 (WebCore::CCScrollbarLayerImpl::CCScrollbar::pressedPart):
1366 (WebCore::CCScrollbarLayerImpl::CCScrollbar::hoveredPart):
1367 (WebCore::CCScrollbarLayerImpl::CCScrollbar::scrollbarOverlayStyle):
1368 (WebCore::CCScrollbarLayerImpl::CCScrollbar::orientation):
1369 (WebCore::CCScrollbarLayerImpl::CCScrollbar::isCustomScrollbar):
1370 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
1371 (CCScrollbarLayerImpl):
1374 2012-07-30 Andreas Kling <kling@webkit.org>
1376 REGRESSION(r123636): Heap-use-after-free in StyleResolver::collectMatchingRules.
1377 <http://webkit.org/b/92430>
1379 Reviewed by Antti Koivisto.
1381 Don't hold on to a reference to StyledElement::classNames() as that may become
1382 invalid after mutating the element's attribute data.
1384 In this case it was happening below Element::hasAttributes() which is unfortunately
1385 naive enough to always serialize lazy attributes. That is a minor inefficiency that
1386 can be addressed in a separate patch.
1388 Covered by valgrind on existing tests.
1390 * css/StyleResolver.cpp:
1391 (WebCore::StyleResolver::collectMatchingRules):
1393 2012-07-30 James Robinson <jamesr@chromium.org>
1395 [chromium] CCThreadTask should not depend on CrossThreadTask and does not need to depend on CrossThreadCopier
1396 https://bugs.webkit.org/show_bug.cgi?id=90132
1398 Reviewed by David Levin.
1400 CrossThreadTask is defined in WebCore/dom/ and depends on concepts like ScriptExecutionConcept. CCThreadTask,
1401 being in WebCore/platform/, should not depend on /dom/ or anything from that layer.
1403 CrossThreadCopier is not a layering violation per se, but it's also not at all helpful for CCThreadTask - we
1404 never use any types for which it would be useful.
1406 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1407 (WebCore::CCThreadProxy::compositeAndReadback):
1408 (WebCore::CCThreadProxy::finishAllRendering):
1409 (WebCore::CCThreadProxy::initializeContext):
1410 (WebCore::CCThreadProxy::setVisible):
1411 (WebCore::CCThreadProxy::initializeLayerRenderer):
1412 (WebCore::CCThreadProxy::recreateContext):
1413 (WebCore::CCThreadProxy::implSideRenderingStats):
1414 (WebCore::CCThreadProxy::start):
1415 (WebCore::CCThreadProxy::stop):
1416 (WebCore::CCThreadProxy::forceSerializeOnSwapBuffers):
1417 (WebCore::CCThreadProxy::beginFrame):
1418 (WebCore::CCThreadProxy::acquireLayerTextures):
1419 * platform/graphics/chromium/cc/CCThreadTask.h:
1421 (WebCore::CCThreadTask1::create):
1422 (WebCore::CCThreadTask1::CCThreadTask1):
1424 (WebCore::CCThreadTask2::create):
1425 (WebCore::CCThreadTask2::CCThreadTask2):
1427 (WebCore::CCThreadTask3::create):
1428 (WebCore::CCThreadTask3::CCThreadTask3):
1430 (WebCore::CCThreadTask4::create):
1431 (WebCore::CCThreadTask4::CCThreadTask4):
1433 (WebCore::CCThreadTask5::create):
1434 (WebCore::CCThreadTask5::CCThreadTask5):
1435 (WebCore::createCCThreadTask):
1437 2012-07-30 Paul Irish <paul.irish@gmail.com>
1439 Web Inspector: Rename Databases to Web SQL
1440 https://bugs.webkit.org/show_bug.cgi?id=92646
1442 Reviewed by Pavel Feldman.
1444 Renamed Databases to Web SQL. Drive-by fix for EmptyView
1447 * English.lproj/localizedStrings.js:
1448 * inspector/front-end/EmptyView.js:
1449 * inspector/front-end/ResourcesPanel.js:
1451 2012-07-30 Tony Chang <tony@chromium.org>
1453 new flexbox should ignore float set on flexitems
1454 https://bugs.webkit.org/show_bug.cgi?id=70792
1456 Reviewed by Ojan Vafai.
1458 Force flex items to not float.
1460 Test: css3/flexbox/floated-flexitem.html
1462 * css/StyleResolver.cpp:
1463 (WebCore::StyleResolver::adjustRenderStyle): Force NoFloat on flex items.
1465 2012-07-30 Adrienne Walker <enne@google.com>
1467 [chromium] Turn back on ScrollbarLayerChromium for Windows
1468 https://bugs.webkit.org/show_bug.cgi?id=92409
1470 Reviewed by James Robinson.
1472 This reverts r122791. As GDI issues were addressed in Chromium via
1473 http://src.chromium.org/viewvc/chrome?view=rev&revision=148215,
1474 scrollbar parts can now be composited on the thread.
1476 * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
1477 (WebCore::createScrollbarLayer):
1479 2012-07-30 Sheriff Bot <webkit.review.bot@gmail.com>
1481 Unreviewed, rolling out r124025.
1482 http://trac.webkit.org/changeset/124025
1483 https://bugs.webkit.org/show_bug.cgi?id=92658
1485 Causes color-suggestion-picker-appearance layout test to time
1486 out on all Chromium platforms (Requested by tomhudson_ on
1489 * rendering/RenderThemeChromiumCommon.cpp:
1490 (WebCore::RenderThemeChromiumCommon::supportsDataListUI):
1492 2012-07-30 Sheriff Bot <webkit.review.bot@gmail.com>
1494 Unreviewed, rolling out r123966 and r123967.
1495 http://trac.webkit.org/changeset/123966
1496 http://trac.webkit.org/changeset/123967
1497 https://bugs.webkit.org/show_bug.cgi?id=92656
1499 This patch is causing assertion failures on the debug bot
1500 (also rolling out a dependent patch) (Requested by mrobinson
1504 * GNUmakefile.list.am:
1505 * platform/text/gtk/TextCheckerEnchant.cpp: Removed.
1506 * platform/text/gtk/TextCheckerEnchant.h: Removed.
1508 2012-07-30 Julien Chaffraix <jchaffraix@webkit.org>
1510 ASSERTION FAILED: !rect.isEmpty() : void WebCore::GraphicsContext::drawRect(const WebCore::IntRect &)
1511 https://bugs.webkit.org/show_bug.cgi?id=92187
1513 Reviewed by Simon Fraser.
1515 The border painting logic (RenderBoxModelObject::paintOneBorderSide) would pass a rect with a 0px length
1516 to RenderObject::drawLineForBoxSide. We do check the width (thickness) but not the length so we would pass
1517 the rect to GraphicsContext and hit the ASSERT. This change adds a check for the length too as it is the safest
1518 way, it means that we may still do unneeded operations before bailing out but that's an existing problem in the code.
1520 Tests: fast/borders/0px-borders-no-line-height.html
1521 fast/borders/double-1px-border-assert.html
1523 * rendering/RenderObject.cpp:
1524 (WebCore::RenderObject::drawLineForBoxSide):
1525 Added a 0px length check. While renaming confusing variables and re-using others,
1526 I also found a potential empty border that I fixed (tested by the 2nd case above).
1528 2012-07-26 Stephen White <senorblanco@chromium.org>
1530 [chromium] Refactor the computation of resampled bitmap size in
1531 drawImage and drawPattern.
1532 https://bugs.webkit.org/show_bug.cgi?id=92408
1534 Reviewed by Adrienne Walker.
1536 We used to have a special-purpose function called TransformDimensions()
1537 which did pretty much the same thing as SkRect::mapRect() does. This
1538 change unifies the drawPattern code to use mapRect() in the same way
1539 that drawImage() does.
1541 Covered by existing tests, e.g., fast/backgrounds/size/*.
1543 * platform/graphics/skia/ImageSkia.cpp:
1545 (WebCore::Image::drawPattern):
1546 Note: we're now doing using the original (float) source rect, and
1547 converting to int only after applying the matrix transform. This
1548 might result in different decisions about resampling mode, but it's
1549 more correct anyway.
1551 2012-07-30 Vineet Chaudhary <rgf748@motorola.com>
1553 https://bugs.webkit.org/show_bug.cgi?id=92642
1554 [Bindings]Remove custom JS/V8 bindings for WebSocket::close() using [Clamp]
1556 Reviewed by Kentaro Hara.
1558 With support of [Clamp] as extended attribute we can replace custom bindings from WebSocket::close().
1559 Spec for WebSocket::close() : http://www.whatwg.org/specs/web-apps/current-work/multipage/network.html#websocket
1561 No new tests. There should be no behavioural changes
1562 Existing tests under http/websocket/tests/hybi/ should cover this.
1564 * Modules/websockets/WebSocket.h:
1565 (WebCore::WebSocket::close):
1566 * Modules/websockets/WebSocket.idl: Used [Clamp].
1567 * bindings/js/JSWebSocketCustom.cpp: Removed custom call close().
1569 * bindings/scripts/CodeGeneratorJS.pm:
1570 (GenerateParametersCheck):
1571 * bindings/scripts/CodeGeneratorV8.pm:
1572 (GenerateParametersCheck):
1573 * bindings/scripts/test/JS/JSTestObj.cpp:
1574 (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
1575 * bindings/scripts/test/V8/V8TestObj.cpp:
1576 (WebCore::TestObjV8Internal::classMethodWithClampCallback):
1577 * bindings/v8/custom/V8WebSocketCustom.cpp: Removed custom call close().
1580 2012-07-29 Vsevolod Vlasov <vsevik@chromium.org>
1582 Web Inspector: Resource agent's reference to cached resources should be weak.
1583 https://bugs.webkit.org/show_bug.cgi?id=92108
1585 Reviewed by Pavel Feldman.
1587 NetworkResourcesData now stores a raw pointer to CachedResource.
1588 CachedResource now notifies InspectorInstrumentation that it will be destroyed.
1589 InspectorInstrumentation stores a set of InstrumentingAgents and broadcasts willDestroyCachedResource event to all available resourceAgents.
1590 Destroyed resources content is saved to NetworkResourcesData.
1592 Tests: http/tests/inspector/network/cached-resource-destroyed-moved-to-storage.html
1593 http/tests/inspector/network/cached-resource-destroyed-too-big-discarded.html
1596 * inspector/InspectorController.cpp:
1597 (WebCore::InspectorController::InspectorController):
1598 (WebCore::InspectorController::inspectedPageDestroyed):
1599 * inspector/InspectorInstrumentation.cpp:
1601 (WebCore::InspectorInstrumentation::willDestroyCachedResourceImpl):
1602 (WebCore::InspectorInstrumentation::registerInstrumentingAgents):
1603 (WebCore::InspectorInstrumentation::unregisterInstrumentingAgents):
1604 * inspector/InspectorInstrumentation.h:
1605 (InspectorInstrumentation):
1606 (WebCore::InspectorInstrumentation::willDestroyCachedResource):
1608 * inspector/InspectorResourceAgent.cpp:
1609 (WebCore::InspectorResourceAgent::didReceiveData):
1610 (WebCore::InspectorResourceAgent::willDestroyCachedResource):
1612 (WebCore::InspectorResourceAgent::getResponseBody):
1613 * inspector/InspectorResourceAgent.h:
1614 (InspectorResourceAgent):
1615 * inspector/NetworkResourcesData.cpp:
1616 (WebCore::NetworkResourcesData::ResourceData::ResourceData):
1617 (WebCore::NetworkResourcesData::ResourceData::setContent):
1618 (WebCore::NetworkResourcesData::setResourceContent):
1619 (WebCore::NetworkResourcesData::removeCachedResource):
1621 * inspector/NetworkResourcesData.h:
1623 (WebCore::NetworkResourcesData::ResourceData::base64Encoded):
1624 (WebCore::NetworkResourcesData::ResourceData::cachedResource):
1625 (NetworkResourcesData):
1626 * loader/cache/CachedResource.cpp:
1627 (WebCore::CachedResource::~CachedResource):
1628 (WebCore::CachedResource::removeClient):
1629 (WebCore::CachedResource::deleteIfPossible):
1631 * loader/cache/CachedResource.h:
1633 * loader/cache/CachedResourceLoader.cpp:
1634 (WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):
1635 (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
1636 (WebCore::CachedResourceLoader::clearPreloads):
1637 * loader/cache/CachedResourceLoader.h:
1638 (CachedResourceLoader):
1639 * loader/cache/MemoryCache.cpp:
1640 (WebCore::MemoryCache::evict):
1641 * testing/InternalSettings.cpp:
1642 * testing/Internals.cpp:
1643 (WebCore::Internals::garbageCollectDocumentResources):
1645 * testing/Internals.h:
1647 * testing/Internals.idl:
1649 2012-07-30 Shinya Kawanaka <shinyak@chromium.org>
1651 Prohibit having AuthorShadowDOM of input or textarea element for a while and having a flag to enable it in Internals.
1652 https://bugs.webkit.org/show_bug.cgi?id=92611
1654 Reviewed by Hajime Morita.
1656 Prohibit having AuthorShadowDOM of input elemnet unless a flag in RuntimeEnabledFeatures is not enabled.
1657 The flag can be enabled in Internals.
1659 The elements in UserAgentShadowDOM of input element assume that they have a renderer when the input
1660 element has a renderer. However, this does not hold when AuthorShadowDOM is added to input element.
1661 So until we fix the issue, we should disable to have AuthorShadowDOM for input element, because it may
1662 cause crashes and security problems.
1664 Tests: fast/dom/shadow/input-with-validation-without-shadow.html
1665 fast/dom/shadow/input-with-validation.html
1666 fast/dom/shadow/shadow-disable.html
1668 * bindings/generic/RuntimeEnabledFeatures.cpp:
1670 * bindings/generic/RuntimeEnabledFeatures.h:
1671 (RuntimeEnabledFeatures):
1672 (WebCore::RuntimeEnabledFeatures::authorShadowDOMForAnyElementEnabled):
1673 (WebCore::RuntimeEnabledFeatures::setAuthorShadowDOMForAnyElementEnabled):
1674 * dom/ShadowRoot.cpp:
1675 (WebCore::allowsAuthorShadowRoot): The input element or textarea element does not allow to have a ShadowDOM unless
1676 is a flag in RuntimeEnabledFeatures is not enabled.
1677 * html/HTMLInputElement.h:
1678 (WebCore::isHTMLInputElement):
1680 * html/HTMLTextAreaElement.h:
1681 (WebCore::isHTMLTextAreaElement):
1683 * testing/Internals.cpp:
1684 (WebCore::Internals::setAuthorShadowDOMForAnyElementEnabled):
1686 * testing/Internals.h:
1688 * testing/Internals.idl:
1690 2012-07-30 Pavel Feldman <pfeldman@chromium.org>
1692 Web Inspector: support --line-numbers mapping for SASS
1693 https://bugs.webkit.org/show_bug.cgi?id=92400
1695 Reviewed by Vsevolod Vlasov.
1697 There is --debug-info and --line-numbers ways of referencing the source scss file, adding support for --line-numbers here.
1699 * inspector/front-end/SASSSourceMapping.js:
1700 (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
1701 (WebInspector.SASSSourceMapping.prototype._resourceAdded):
1702 (_bindUISourceCode):
1704 2012-07-30 Keishi Hattori <keishi@webkit.org>
1706 Implement datalist UI for input type color for Chromium
1707 https://bugs.webkit.org/show_bug.cgi?id=92075
1709 Reviewed by Kent Tamura.
1711 Test: platform/chromium/fast/forms/color/color-suggestion-picker-appearance.html
1713 * rendering/RenderThemeChromiumCommon.cpp:
1714 (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Added color to types supporting datalist.
1716 2012-07-30 Allan Sandfeld Jensen <allan.jensen@nokia.com>
1718 Wheel events on a page with frames are not handled in fixed layout
1719 https://bugs.webkit.org/show_bug.cgi?id=90550
1721 Reviewed by Antonio Gomes.
1723 Based on patch by Andras Becsi.
1725 Frame-rect size is not the right value to check against to see if the document
1726 can be contained within the full visible content rect, since it does not handle
1727 fixedVisibleContentRect. Instead visibleContentRect(true) should be used which
1728 returns the full visible content rect disregarding scrollbars, and which is
1729 the same a frame-rect size when fixedVisibleContentRect is not set.
1731 * platform/ScrollView.cpp:
1732 (WebCore::ScrollView::updateScrollbars):
1734 2012-07-30 Allan Sandfeld Jensen <allan.jensen@nokia.com>
1736 There is no way to tell whether an element can be activated or not
1737 https://bugs.webkit.org/show_bug.cgi?id=92093
1739 Reviewed by Antonio Gomes.
1741 This patch adds the willRespondToMouseClickEvents and willRespondToMouseMoveEvents
1742 functions, named after similar functions in the iOS fork of WebKit.
1744 Touch-adjustment will now use these two functions, which improves accuracy when
1745 targeting shadow-dom elements, and also means touch adjustment will prefer enabled
1746 form-elements over disabled ones.
1748 Test: touchadjustment/disabled-formelements.html
1751 (WebCore::Node::willRespondToMouseMoveEvents):
1752 (WebCore::Node::willRespondToMouseClickEvents):
1755 * editing/DeleteButton.h:
1756 * html/HTMLAnchorElement.cpp:
1757 (WebCore::HTMLAnchorElement::willRespondToMouseClickEvents):
1758 * html/HTMLAnchorElement.h:
1759 (HTMLAnchorElement):
1760 * html/HTMLButtonElement.cpp:
1761 (WebCore::HTMLButtonElement::willRespondToMouseClickEvents):
1762 * html/HTMLButtonElement.h:
1763 (HTMLButtonElement):
1764 * html/HTMLInputElement.cpp:
1765 (WebCore::HTMLInputElement::willRespondToMouseClickEvents):
1766 * html/HTMLInputElement.h:
1768 * html/HTMLLabelElement.cpp:
1769 (WebCore::HTMLLabelElement::willRespondToMouseClickEvents):
1770 * html/HTMLLabelElement.h:
1772 * html/HTMLMediaElement.cpp:
1773 (WebCore::HTMLMediaElement::willRespondToMouseClickEvents):
1774 * html/HTMLMediaElement.h:
1775 * html/HTMLSummaryElement.cpp:
1776 (WebCore::HTMLSummaryElement::willRespondToMouseClickEvents):
1777 * html/HTMLSummaryElement.h:
1778 (HTMLSummaryElement):
1779 * html/shadow/CalendarPickerElement.cpp:
1780 (WebCore::CalendarPickerElement::willRespondToMouseClickEvents):
1781 * html/shadow/CalendarPickerElement.h:
1782 (CalendarPickerElement):
1783 * html/shadow/MediaControlElements.cpp:
1784 (WebCore::MediaControlTimelineElement::willRespondToMouseClickEvents):
1785 (WebCore::MediaControlTimelineElement::setPosition):
1786 (WebCore::MediaControlVolumeSliderElement::willRespondToMouseMoveEvents):
1787 (WebCore::MediaControlVolumeSliderElement::willRespondToMouseClickEvents):
1788 * html/shadow/MediaControlElements.h:
1789 (MediaControlTimelineElement):
1790 (MediaControlVolumeSliderElement):
1791 * html/shadow/MediaControlRootElement.h:
1792 * html/shadow/SliderThumbElement.cpp:
1793 (WebCore::SliderThumbElement::willRespondToMouseMoveEvents):
1794 (WebCore::SliderThumbElement::willRespondToMouseClickEvents):
1795 * html/shadow/SliderThumbElement.h:
1796 (SliderThumbElement):
1797 * html/shadow/TextControlInnerElements.cpp:
1798 (WebCore::SearchFieldResultsButtonElement::willRespondToMouseClickEvents):
1799 (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents):
1800 (WebCore::SpinButtonElement::willRespondToMouseMoveEvents):
1801 (WebCore::SpinButtonElement::willRespondToMouseClickEvents):
1802 (WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents):
1803 * html/shadow/TextControlInnerElements.h:
1804 (SearchFieldResultsButtonElement):
1805 (SearchFieldCancelButtonElement):
1806 (SpinButtonElement):
1807 * html/shadow/TextFieldDecorationElement.cpp:
1808 (WebCore::TextFieldDecorationElement::willRespondToMouseClickEvents):
1809 * html/shadow/TextFieldDecorationElement.h:
1810 (TextFieldDecorationElement):
1811 * page/TouchAdjustment.cpp:
1812 (WebCore::TouchAdjustment::nodeRespondsToTapGesture):
1814 2012-07-30 Vsevolod Vlasov <vsevik@chromium.org>
1816 Web Inspector: Content size variables in NetworkResourcesData should have size_t type instead of int.
1817 https://bugs.webkit.org/show_bug.cgi?id=92618
1819 Reviewed by Yury Semikhatsky.
1821 Changed content size variables type in NetworkResourcesData from int to size_t.
1822 Drive-by: Switched String length calculation to recently added StringImpl's sizeInBytes.
1824 * inspector/NetworkResourcesData.cpp:
1825 (WebCore::NetworkResourcesData::ResourceData::removeContent):
1826 (WebCore::NetworkResourcesData::ResourceData::dataLength):
1827 (WebCore::NetworkResourcesData::ResourceData::appendData):
1828 (WebCore::NetworkResourcesData::ResourceData::decodeDataToContent):
1829 (WebCore::NetworkResourcesData::setResourceContent):
1830 (WebCore::NetworkResourcesData::maybeAddResourceData):
1831 (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
1832 (WebCore::NetworkResourcesData::setResourcesDataSizeLimits):
1833 (WebCore::NetworkResourcesData::ensureFreeSpace):
1834 * inspector/NetworkResourcesData.h:
1836 (NetworkResourcesData):
1838 2012-07-30 Hayato Ito <hayato@chromium.org>
1840 Remove an useless member variable, m_shouldPreventDispatch, from EventDispatcher.
1841 https://bugs.webkit.org/show_bug.cgi?id=92625
1843 Reviewed by Hajime Morita.
1845 EventDispatcher::m_shouldPreventDispatch does not have any effects. We can remove that.
1847 No new tests, no behavior change.
1849 * dom/EventDispatcher.cpp:
1850 (WebCore::EventDispatcher::EventDispatcher):
1851 (WebCore::EventDispatcher::dispatchEvent):
1852 * dom/EventDispatcher.h:
1855 2012-07-30 Hayato Ito <hayato@chromium.org>
1857 Remove an useless member variable, m_shouldPreventDispatch, from EventDispatcher.
1858 https://bugs.webkit.org/show_bug.cgi?id=92625
1860 Reviewed by Hajime Morita.
1862 EventDispatcher::m_shouldPreventDispatch does not have any effects. We can remove that.
1864 No new tests, no behavior change.
1866 * dom/EventDispatcher.cpp:
1867 (WebCore::EventDispatcher::EventDispatcher):
1868 (WebCore::EventDispatcher::dispatchEvent):
1869 * dom/EventDispatcher.h:
1872 2012-07-26 Yury Semikhatsky <yurys@chromium.org>
1874 Web Inspector: make MemoryInstrumentation methods private
1875 https://bugs.webkit.org/show_bug.cgi?id=92379
1877 Reviewed by Vsevolod Vlasov.
1879 MemoryInstrumentation was refactored.
1880 - All reporting methods on MemoryInstrumentation except add*Object are
1881 private to enforce MemoryClassInfo usage.
1882 - MemoryInstrumentation::Add*Member methods renamed to Add*Object
1883 - String reporting is implemented directly in the MemoryInstrumentation,
1884 not in its descendants.
1887 * GNUmakefile.list.am:
1889 * WebCore.vcproj/WebCore.vcproj:
1890 * WebCore.xcodeproj/project.pbxproj:
1891 * bindings/v8/ScriptProfiler.cpp:
1892 (WebCore::ScriptProfiler::collectBindingMemoryInfo):
1893 * dom/MemoryInstrumentation.cpp: Added.
1895 (WebCore::MemoryInstrumentation::addString):
1896 * dom/MemoryInstrumentation.h:
1897 (WebCore::MemoryInstrumentation::addInstrumentedObject):
1898 (WebCore::MemoryInstrumentation::addObject):
1899 (MemoryInstrumentation):
1900 (InstrumentedPointerBase):
1901 (WebCore::MemoryInstrumentation::InstrumentedPointerBase::~InstrumentedPointerBase):
1902 (InstrumentedPointer):
1903 (WebCore::MemoryInstrumentation::InstrumentedPointer::InstrumentedPointer):
1904 (WebCore::MemoryInstrumentation::OwningTraits::addInstrumentedObject):
1905 (WebCore::MemoryInstrumentation::OwningTraits::addObject):
1906 (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
1907 (WebCore::MemoryClassInfo::addInstrumentedMember):
1908 (WebCore::MemoryClassInfo::addMember):
1910 (WebCore::MemoryInstrumentation::addObjectImpl):
1911 (WebCore::MemoryInstrumentation::addInstrumentedCollection):
1912 (WebCore::MemoryInstrumentation::calculateContainerSize):
1913 * inspector/InspectorMemoryAgent.cpp:
1916 2012-07-30 Alexander Pavlov <apavlov@chromium.org>
1918 Web Inspector: [Styles] No color swatch for the SVG "fill" and "stroke" property values
1919 https://bugs.webkit.org/show_bug.cgi?id=92638
1921 Reviewed by Vsevolod Vlasov.
1923 Added the "fill" and "stroke" properties to the list of color-aware properties.
1925 * inspector/front-end/CSSKeywordCompletions.js:
1927 2012-07-30 Sheriff Bot <webkit.review.bot@gmail.com>
1929 Unreviewed, rolling out r124000.
1930 http://trac.webkit.org/changeset/124000
1931 https://bugs.webkit.org/show_bug.cgi?id=92632
1933 seems to have broken chromium Range_InstanceSizeUnknown unit
1934 test across many platforms (Requested by tomhudson on
1938 * inspector/InspectorController.cpp:
1939 (WebCore::InspectorController::InspectorController):
1940 (WebCore::InspectorController::inspectedPageDestroyed):
1941 * inspector/InspectorInstrumentation.cpp:
1943 * inspector/InspectorInstrumentation.h:
1944 (InspectorInstrumentation):
1945 * inspector/InspectorResourceAgent.cpp:
1946 (WebCore::InspectorResourceAgent::didReceiveData):
1947 (WebCore::InspectorResourceAgent::getResponseBody):
1948 * inspector/InspectorResourceAgent.h:
1949 (InspectorResourceAgent):
1950 * inspector/NetworkResourcesData.cpp:
1951 (WebCore::NetworkResourcesData::ResourceData::ResourceData):
1952 (WebCore::NetworkResourcesData::ResourceData::setContent):
1953 (WebCore::NetworkResourcesData::setResourceContent):
1954 * inspector/NetworkResourcesData.h:
1956 (WebCore::NetworkResourcesData::ResourceData::cachedResource):
1957 (NetworkResourcesData):
1958 * loader/cache/CachedResource.cpp:
1959 (WebCore::CachedResource::~CachedResource):
1960 (WebCore::CachedResource::removeClient):
1961 (WebCore::CachedResource::deleteIfPossible):
1963 * loader/cache/CachedResource.h:
1965 * loader/cache/CachedResourceLoader.cpp:
1966 (WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):
1967 (WebCore::CachedResourceLoader::clearPreloads):
1968 * loader/cache/CachedResourceLoader.h:
1969 (CachedResourceLoader):
1970 * loader/cache/MemoryCache.cpp:
1971 (WebCore::MemoryCache::evict):
1972 * testing/InternalSettings.cpp:
1973 * testing/Internals.cpp:
1974 * testing/Internals.h:
1976 * testing/Internals.idl:
1978 2012-07-30 Hayato Ito <hayato@chromium.org>
1980 Remove an unused member variable, m_originalTarget, from EventDispatcher.
1981 https://bugs.webkit.org/show_bug.cgi?id=92614
1983 Reviewed by Andreas Kling.
1985 No one uses EventDispatcher::m_originalTarget.
1987 No new tests, no behavior change.
1989 * dom/EventDispatcher.h:
1992 2012-07-27 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
1994 [Qt] Fix issues remaining with fixed positioned layers
1995 https://bugs.webkit.org/show_bug.cgi?id=92528
1997 Reviewed by Noam Rosenthal.
1999 * platform/graphics/texmap/TextureMapperLayer.cpp:
2000 (WebCore::TextureMapperLayer::syncCompositingStateSelf):
2001 Make sure that the delta is used when syncCompositingStateSelf is called afterward.
2002 (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
2003 * platform/graphics/texmap/TextureMapperLayer.h:
2004 Use a FloatSize instead of an IntPoint for the delta.
2005 (TextureMapperLayer):
2006 (WebCore::TextureMapperLayer::adjustedPosition):
2008 2012-07-30 Patrick Gansterer <paroga@webkit.org>
2010 Replace UnicodeWinCE with UnicodeWchar
2011 https://bugs.webkit.org/show_bug.cgi?id=92539
2013 Reviewed by Ryosuke Niwa.
2015 UnicodeWinCE never contained WinCE specific code. UnicodeWchar
2016 is a replacement for it, which is mainly based on the functions
2017 from <wchar.h>. It is ment as a minimal Unicode backend, which
2018 can be used very easy and has no external dependencies.
2020 * platform/text/TextEncoding.cpp:
2021 (WebCore::TextEncoding::encode):
2022 * platform/text/TextEncodingRegistry.cpp:
2023 (WebCore::extendTextCodecMaps):
2025 2012-07-30 Hayato Ito <hayato@chromium.org>
2027 Remove unnecessary code which set event's target from EventDispatcher::dispatchEvent.
2028 https://bugs.webkit.org/show_bug.cgi?id=92613
2030 Reviewed by Hajime Morita.
2032 EventContext::handleLocalEvents does all required jobs so we don't
2033 need to set target in EventDispacher::dispatchEvent() for TARGET phase.
2035 No new tests, no behavior change.
2037 * dom/EventDispatcher.cpp:
2038 (WebCore::EventDispatcher::dispatchEvent):
2040 2012-07-30 Sheriff Bot <webkit.review.bot@gmail.com>
2042 Unreviewed, rolling out r124004.
2043 http://trac.webkit.org/changeset/124004
2044 https://bugs.webkit.org/show_bug.cgi?id=92622
2046 Broke Android build (Requested by keishi on #webkit).
2048 * rendering/RenderThemeChromiumCommon.cpp:
2049 (WebCore::RenderThemeChromiumCommon::supportsDataListUI):
2051 2012-07-30 Pavel Feldman <pfeldman@chromium.org>
2053 Web Inspector: element tag disappears after editing
2054 https://bugs.webkit.org/show_bug.cgi?id=92385
2056 Reviewed by Vsevolod Vlasov.
2058 This has regressed when we started hiding elements panel upon
2059 batch updates. Narrowing hiding cases, updating selection
2060 in on-screen mode only.
2062 * inspector/front-end/ElementsTreeOutline.js:
2063 (WebInspector.ElementsTreeElement.prototype.updateSelection):
2065 2012-07-26 Yury Semikhatsky <yurys@chromium.org>
2067 Web Inspector: move StringImpl size calculation to StringImpl
2068 https://bugs.webkit.org/show_bug.cgi?id=92359
2070 Reviewed by Pavel Feldman.
2072 Moved stringSize(StringImpl*) implementation from InspectorMemoryAgent to
2073 StringImpl::sizeInBytes();
2075 * inspector/InspectorMemoryAgent.cpp:
2078 2012-07-30 Pavel Feldman <pfeldman@chromium.org>
2080 Web Inspector: workers inspector is broken in the remote debugging mode
2081 https://bugs.webkit.org/show_bug.cgi?id=92540
2083 Reviewed by Yury Semikhatsky.
2085 The problem was that worker manager re-used complete url with query parameters
2086 for spin-off worker front-ends. As a result, in case of remote debugging, newly
2087 created front-ends were connecting to the same web socket (because of the ws parameter).
2089 * inspector/front-end/WorkerManager.js:
2090 (WebInspector.WorkerManager.isDedicatedWorkerFrontend):
2091 * inspector/front-end/inspector.js:
2093 2012-07-30 Keishi Hattori <keishi@webkit.org>
2095 Implement datalist UI for input type color for Chromium
2096 https://bugs.webkit.org/show_bug.cgi?id=92075
2098 Reviewed by Kent Tamura.
2100 Test: platform/chromium/fast/forms/color/color-suggestion-picker-appearance.html
2102 * rendering/RenderThemeChromiumCommon.cpp:
2103 (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Added color to types supporting datalist.
2105 2012-07-30 Mario Sanchez Prada <msanchez@igalia.com>
2107 REGRESSION (r123767): platform/gtk/accessibility/object-with-title.html failing on GTK
2108 https://bugs.webkit.org/show_bug.cgi?id=92477
2110 Reviewed by Chris Fleizach.
2112 Consider title and accessibilityDescription together with helpText to
2113 decide whether an object should be exposed in the accessibility tree.
2115 * accessibility/AccessibilityRenderObject.cpp:
2116 (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
2118 2012-07-29 Vsevolod Vlasov <vsevik@chromium.org>
2120 Web Inspector: Resource agent's reference to cached resources should be weak.
2121 https://bugs.webkit.org/show_bug.cgi?id=92108
2123 Reviewed by Pavel Feldman.
2125 NetworkResourcesData now stores a raw pointer to CachedResource.
2126 CachedResource now notifies InspectorInstrumentation that it will be destroyed.
2127 InspectorInstrumentation stores a set of InstrumentingAgents and broadcasts willDestroyCachedResource event to all available resourceAgents.
2128 Destroyed resources content is saved to NetworkResourcesData.
2130 Tests: http/tests/inspector/network/cached-resource-destroyed-moved-to-storage.html
2131 http/tests/inspector/network/cached-resource-destroyed-too-big-discarded.html
2134 * inspector/InspectorController.cpp:
2135 (WebCore::InspectorController::InspectorController):
2136 (WebCore::InspectorController::inspectedPageDestroyed):
2137 * inspector/InspectorInstrumentation.cpp:
2139 (WebCore::InspectorInstrumentation::willDestroyCachedResourceImpl):
2140 (WebCore::InspectorInstrumentation::registerInstrumentingAgents):
2141 (WebCore::InspectorInstrumentation::unregisterInstrumentingAgents):
2142 * inspector/InspectorInstrumentation.h:
2143 (InspectorInstrumentation):
2144 (WebCore::InspectorInstrumentation::willDestroyCachedResource):
2146 * inspector/InspectorResourceAgent.cpp:
2147 (WebCore::InspectorResourceAgent::didReceiveData):
2148 (WebCore::InspectorResourceAgent::willDestroyCachedResource):
2150 (WebCore::InspectorResourceAgent::getResponseBody):
2151 * inspector/InspectorResourceAgent.h:
2152 (InspectorResourceAgent):
2153 * inspector/NetworkResourcesData.cpp:
2154 (WebCore::NetworkResourcesData::ResourceData::ResourceData):
2155 (WebCore::NetworkResourcesData::ResourceData::setContent):
2156 (WebCore::NetworkResourcesData::setResourceContent):
2157 (WebCore::NetworkResourcesData::removeCachedResource):
2159 * inspector/NetworkResourcesData.h:
2161 (WebCore::NetworkResourcesData::ResourceData::base64Encoded):
2162 (WebCore::NetworkResourcesData::ResourceData::cachedResource):
2163 (NetworkResourcesData):
2164 * loader/cache/CachedResource.cpp:
2165 (WebCore::CachedResource::~CachedResource):
2166 (WebCore::CachedResource::removeClient):
2167 (WebCore::CachedResource::deleteIfPossible):
2169 * loader/cache/CachedResource.h:
2171 * loader/cache/CachedResourceLoader.cpp:
2172 (WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):
2173 (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
2174 (WebCore::CachedResourceLoader::clearPreloads):
2175 * loader/cache/CachedResourceLoader.h:
2176 (CachedResourceLoader):
2177 * loader/cache/MemoryCache.cpp:
2178 (WebCore::MemoryCache::evict):
2179 * testing/InternalSettings.cpp:
2180 * testing/Internals.cpp:
2181 (WebCore::Internals::garbageCollectDocumentResources):
2183 * testing/Internals.h:
2185 * testing/Internals.idl:
2187 2012-07-29 YoungTaeck Song <youngtaeck.song@samsung.com>
2189 [WK2][EFL] Accelerated compositing support using TextureMapper on Efl WebKit2
2190 https://bugs.webkit.org/show_bug.cgi?id=91583
2192 Reviewed by Noam Rosenthal.
2194 This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation.
2195 This patch adds Texture Mapper related files to PlatformEfl.cmake.
2196 And wrapped TextureMapperLayer and TextureMapperBackingStore with USE(ACCELERATED_COMPOSITING) for fixing building error when disable ACCELERATED_COMPOSITING.
2199 * PlatformEfl.cmake:
2200 * platform/graphics/GraphicsLayer.cpp:
2202 * platform/graphics/GraphicsLayer.h:
2204 * platform/graphics/GraphicsLayerAnimation.cpp:
2205 * platform/graphics/GraphicsLayerAnimation.h:
2206 * platform/graphics/PlatformLayer.h:
2208 * platform/graphics/texmap/TextureMapperBackingStore.cpp:
2209 * platform/graphics/texmap/TextureMapperBackingStore.h:
2210 * platform/graphics/texmap/TextureMapperLayer.h:
2212 2012-07-29 YoungTaeck Song <youngtaeck.song@samsung.com>
2214 [WK2][EFL] TILED_BACKING_STORE support on Efl WebKit2
2215 https://bugs.webkit.org/show_bug.cgi?id=91582
2217 Reviewed by Noam Rosenthal.
2219 This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation.
2220 This patch adds TILED_BACKING_STORE related files to CMakeLists.txt and PlatformEfl.cmake
2223 * PlatformEfl.cmake:
2225 2012-07-29 Keishi Hattori <keishi@webkit.org>
2227 Fix removing invalid values from color input suggestions
2228 https://bugs.webkit.org/show_bug.cgi?id=92502
2230 Reviewed by Kent Tamura.
2232 Make ColorInputType::typeMismatchFor() return false for invalid color
2233 values so that they don't appear in the list of suggestions that
2234 ColorInputType::suggestions() returns.
2236 No new tests. Tests to be added in Bug 92075.
2238 * html/ColorInputType.cpp:
2239 (WebCore::ColorInputType::typeMismatchFor):
2241 * html/ColorInputType.h:
2244 2012-07-29 Li Yin <li.yin@intel.com>
2246 getChannelData should raise exception when index is more than numberOfChannels.
2247 https://bugs.webkit.org/show_bug.cgi?id=92223
2249 Reviewed by Kentaro Hara.
2251 Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBuffer-section
2252 In getChannelData function, the index value MUST be less than numberOfChannels
2253 or an exception will be thrown.
2255 Test: webaudio/audiobuffer.html
2257 * Modules/webaudio/AudioBuffer.cpp:
2258 (WebCore::AudioBuffer::getChannelData):
2260 * Modules/webaudio/AudioBuffer.h:
2263 * Modules/webaudio/AudioBuffer.idl: raise exception when index is not less than numberOfChannels.
2265 2012-07-29 Sukolsak Sakshuwong <sukolsak@google.com>
2267 forward-delete in the last cell of a table moves the caret after the table
2268 https://bugs.webkit.org/show_bug.cgi?id=24250
2270 Reviewed by Ryosuke Niwa.
2272 The ForwardDelete command moved the cursor after the table when it's invoked
2273 in an empty cell that is the last cell of a table. It also removed the break
2274 element when invoked in an empty cell that is not the last cell of a table.
2275 Make it do nothing inside an empty table cell.
2277 Test: editing/deleting/forward-delete-empty-table-cell.html
2279 * editing/TypingCommand.cpp:
2280 (WebCore::TypingCommand::forwardDeleteKeyPressed):
2282 2012-07-29 Kwang Yul Seo <skyul@company100.net>
2284 Remove unused method HTMLConstructionSiteTask::take(HTMLConstructionSiteTask&)
2285 https://bugs.webkit.org/show_bug.cgi?id=92601
2287 Reviewed by Adam Barth.
2289 This method was introduced in r104000, but has never been used from the beginning.
2291 No functional change.
2293 * html/parser/HTMLConstructionSite.h:
2295 2012-07-29 Kenichi Ishibashi <bashi@chromium.org>
2297 [Chromium] HarfBuzzShaper can't handle segmented text run
2298 https://bugs.webkit.org/show_bug.cgi?id=92445
2300 Reviewed by Tony Chang.
2302 Pass the range to be displayed to HarfBuzzShaper. The shaper calculates positions and advances of each glyph
2303 regardless of the range, but only add glyphs which are in the range.
2305 No new tests. platform/chromium-linux/fast/text/international/draw-complex-text-from-to.html should
2306 work as expected once we move to use harfbuzz-ng on linux. Note that the current expectation will need to be rebaselined
2307 because the old hb shaper (ComplexTextController) mishandles the range. |to| should be exclusive. I'll rebaseline
2308 the expectation later.
2310 * platform/graphics/harfbuzz/FontHarfBuzz.cpp:
2311 (WebCore::Font::drawComplexText): Call shaper.setDrawRange().
2312 * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
2313 (WebCore::HarfBuzzShaper::HarfBuzzShaper):
2314 (WebCore::HarfBuzzShaper::setDrawRange): Added.
2316 (WebCore::HarfBuzzShaper::shouldDrawCharacterAt): Added.
2317 (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Added variables that hold pending advances.
2318 (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun): Add only glyphs which are in the given range to glyphBuffer.
2319 * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
2321 * platform/graphics/mac/FontComplexTextMac.cpp:
2322 (WebCore::Font::drawComplexText): Call shaper.setDrawRange().
2324 2012-07-29 Dan Bernstein <mitz@apple.com>
2326 Hit testing in the gap between pages returns incorrect results in flipped blocks writing modes
2327 https://bugs.webkit.org/show_bug.cgi?id=92600
2329 Reviewed by Simon Fraser.
2331 Test: fast/multicol/hit-test-gap-between-pages-flipped.html
2333 * rendering/RenderBlock.h:
2334 (WebCore::RenderBlock): Promoted offsetForContents() from private to protected, and demoted
2335 adjustPointToColumnContents() back to private.
2336 * rendering/RenderLayer.cpp:
2337 (WebCore::RenderLayer::hitTest): Changed to flip the point passed to updateHitTestResults().
2338 * rendering/RenderView.cpp:
2339 (WebCore::RenderView::updateHitTestResult): Changed to call offsetForContents(), which, as
2340 of r123977, correctly accounts for flippedness.
2342 2012-07-29 Dan Bernstein <mitz@apple.com>
2344 In flipped blocks, a point on the top edge of a text box is considered outside the box (and vice versa)
2345 https://bugs.webkit.org/show_bug.cgi?id=92597
2347 Reviewed by Ryosuke Niwa.
2349 This is similar to <http://webkit.org/b/92593> except for RenderText. Fixing this required
2350 fixing some code that creates a point inside a box by setting its y coordinate to the
2351 logical top of the box. In a flipped block, this would be just outside the box.
2353 Enhanced fast/writing-mode/flipped-blocks-hit-test-line-edges.html to cover this.
2355 * editing/visible_units.cpp:
2356 (WebCore::absoluteLineDirectionPointToLocalPointInBlock): Changed to use
2357 RootInlineBox::blockDirectionPointInLine in the vertical case as well.
2358 * rendering/RenderBlock.cpp:
2359 (WebCore::RenderBlock::positionForPointWithInlineChildren): Changed to use
2360 RootInlineBox::blockDirectionPointInLine.
2361 * rendering/RenderText.cpp:
2362 (WebCore::RenderText::positionForPoint): Changed the strictness of y inequalities based on
2363 the flippedness of the block. This fixes the bug.
2364 * rendering/RootInlineBox.cpp:
2365 (WebCore::RootInlineBox::blockDirectionPointInLine): Moved the implementation here from the
2366 header, and made it return the bottom in the flipped block case, so that the returned point
2367 is inside the line in that case as well.
2368 * rendering/RootInlineBox.h:
2370 2012-07-29 Rik Cabanier <cabanier@adobe.com>
2372 ENABLE_CSS_COMPOSITING flag
2373 https://bugs.webkit.org/show_bug.cgi?id=92553
2375 Reviewed by Dirk Schulze.
2377 Adds compiler flag CSS_COMPOSITING to build systems to enable CSS blending and compositing. See spec https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html
2380 * Configurations/FeatureDefines.xcconfig:
2382 2012-07-29 Dan Bernstein <mitz@apple.com>
2384 In flipped blocks, a point on the top edge of a box is considered outside the box (and vice versa)
2385 https://bugs.webkit.org/show_bug.cgi?id=92593
2387 Reviewed by Simon Fraser.
2389 With respect to hit testing, boxes should always behave as half-open intervals which include
2390 the physical top and left edges and not the bottom and right edges.
2391 RenderBlock::positionForPoint was not adhering to this, since it was comparing flipped
2394 Tests: fast/writing-mode/flipped-blocks-hit-test-box-edges.html
2395 fast/writing-mode/flipped-blocks-hit-test-line-edges.html
2397 * rendering/RenderBlock.cpp:
2398 (WebCore::RenderBlock::positionForPointWithInlineChildren): When blocks are flipped, changed
2399 strict inequalities of y coordinates into non-strict ones and non-strict inequalities into
2401 (WebCore::RenderBlock::positionForPoint): Ditto, except for the test for being under the top
2402 of the last candidate box, which was made non-strict in the unflipped case and remained
2405 2012-07-28 Dan Bernstein <mitz@apple.com>
2407 RenderBlock::offsetForContents() is wrong in flipped blocks writing modes
2408 https://bugs.webkit.org/show_bug.cgi?id=92588
2410 Reviewed by Sam Weinig.
2412 Tests: fast/multicol/hit-test-block-axis-flipped.html
2413 fast/writing-mode/flipped-blocks-hit-test-overflow-scroll.html
2415 * rendering/RenderBlock.cpp:
2416 (WebCore::RenderBlock::offsetForContents): Flip the point, which puts it back in unflipped
2417 coordinates, before adding the scroll offset and adjusting for columns, then flip it back.
2418 (WebCore::RenderBlock::adjustPointToColumnContents): Changed the inline-axis cases to
2419 work with an unflipped point.
2421 2012-07-28 Dan Bernstein <mitz@apple.com>
2423 In flipped lines writing modes, hit testing at the beginning of a column may return a result from the previous column
2424 https://bugs.webkit.org/show_bug.cgi?id=92566
2426 Reviewed by Simon Fraser.
2428 Enhanced the fix for <http://webkit.org/b/92524> to work with flipped lines.
2430 Extended fast/multicol/hit-test-end-of-column-with-line-height.html.
2432 * rendering/RenderBlock.cpp:
2433 (WebCore::RenderBlock::positionForPointWithInlineChildren): For flipped lines, check if the
2434 hit line is the last one before a page break, and in that case, check if the hit point was
2437 2012-07-28 Simon Fraser <simon.fraser@apple.com>
2439 Size changes on a layer with negative z-index children don't repaint correctly
2440 https://bugs.webkit.org/show_bug.cgi?id=92583
2442 Reviewed by Dean Jackson.
2444 Negative z-index descendants cause a composited layer to have a separate
2445 layer for foreground content. If something caused that foreground layer
2446 to change size (like toggling visibility on a descendant), we failed to
2447 repaint the foreground layer, resulting in stretched content.
2449 Test: compositing/geometry/bounds-ignores-hidden-dynamic-negzindex.html
2451 * rendering/RenderLayerBacking.cpp:
2452 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Repaint the foreground
2453 layer if its size changes, like we do for the main layer.
2455 2012-07-28 Simon Fraser <simon.fraser@apple.com>
2457 Ignore visibility:hidden elements when computing compositing layer bounds
2458 https://bugs.webkit.org/show_bug.cgi?id=92569
2460 Reviewed by Dan Bernstein.
2462 When computing the bounds of compositing layers, we would take into account
2463 layers with no visible content (visibility:hidden, and no non-hidden descendants).
2464 This caused some huge layers in mobile Google maps.
2466 Tests: compositing/geometry/bounds-ignores-hidden-composited-descendant.html
2467 compositing/geometry/bounds-ignores-hidden-dynamic.html
2468 compositing/geometry/bounds-ignores-hidden.html
2470 * rendering/RenderLayer.cpp:
2471 (WebCore::RenderLayer::calculateLayerBounds): If the ExcludeHiddenDescendants flag is set, return
2472 the empty rect for layers with no visible content or descendants, as long as the layer is not
2473 the root of the subtree whose bounds are being computed.
2474 calculateLayerBounds() currently (I think incorrectly) passes the default flags to the recursive calls.
2475 It should probably just pass 'flags', but to make this change safe, OR in the ExcludeHiddenDescendants
2477 * rendering/RenderLayer.h: Add an ExcludeHiddenDescendants flag to the CalculateLayerBoundsFlags.
2478 * rendering/RenderLayerCompositor.cpp:
2479 (WebCore::RenderLayerCompositor::calculateCompositedBounds): Pass the ExcludeHiddenDescendants
2482 2012-07-28 Min Qin <qinmin@chromium.org>
2484 Add an overlay play button to media controls on android
2485 https://bugs.webkit.org/show_bug.cgi?id=92132
2487 Reviewed by Adam Barth.
2489 This change adds an overlay play button to the media controls for android.
2490 No tests for now as this setting is not being used by other port.
2491 Will add a test and adjust all the test expectations when we upstream the layout tests for android.
2494 * css/CSSPrimitiveValueMappings.h:
2495 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2496 * css/CSSValueKeywords.in:
2497 * css/mediaControls.css:
2498 (audio::-webkit-media-controls-overlay-play-button, video::-webkit-media-controls-overlay-play-button):
2499 * css/mediaControlsChromiumAndroid.css:
2500 (audio::-webkit-media-controls-overlay-enclosure):
2501 (video::-webkit-media-controls-overlay-enclosure):
2502 (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
2503 (video::-webkit-media-controls-overlay-play-button):
2504 * html/shadow/MediaControlElements.cpp:
2505 (WebCore::MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement):
2507 (WebCore::MediaControlOverlayPlayButtonElement::create):
2508 (WebCore::MediaControlOverlayPlayButtonElement::defaultEventHandler):
2509 (WebCore::MediaControlOverlayPlayButtonElement::updateDisplayType):
2510 (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
2511 * html/shadow/MediaControlElements.h:
2512 (MediaControlOverlayPlayButtonElement):
2514 * html/shadow/MediaControlRootElementChromium.cpp:
2515 (WebCore::MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement):
2516 (WebCore::MediaControlPanelEnclosureElement::create):
2518 (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
2519 (WebCore::MediaControlRootElementChromium::create):
2520 (WebCore::MediaControlRootElementChromium::initializeControls):
2521 * html/shadow/MediaControlRootElementChromium.h:
2522 (MediaControlChromiumEnclosureElement):
2524 (MediaControlPanelEnclosureElement):
2525 (MediaControlRootElementChromium):
2526 * html/shadow/MediaControlRootElementChromiumAndroid.cpp: Added.
2528 (WebCore::MediaControlOverlayEnclosureElement::MediaControlOverlayEnclosureElement):
2529 (WebCore::MediaControlOverlayEnclosureElement::create):
2530 (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId):
2531 (WebCore::MediaControlRootElementChromiumAndroid::MediaControlRootElementChromiumAndroid):
2532 (WebCore::MediaControls::create):
2533 (WebCore::MediaControlRootElementChromiumAndroid::create):
2534 (WebCore::MediaControlRootElementChromiumAndroid::setMediaController):
2535 (WebCore::MediaControlRootElementChromiumAndroid::playbackStarted):
2536 (WebCore::MediaControlRootElementChromiumAndroid::playbackStopped):
2537 * html/shadow/MediaControlRootElementChromiumAndroid.h: Added.
2539 (MediaControlOverlayEnclosureElement):
2540 (MediaControlRootElementChromiumAndroid):
2541 * platform/ThemeTypes.h:
2542 * rendering/RenderMediaControlsChromium.cpp:
2543 (WebCore::paintMediaOverlayPlayButton):
2545 (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
2546 * rendering/RenderTheme.cpp:
2547 (WebCore::RenderTheme::paint):
2548 * rendering/RenderTheme.h:
2549 (WebCore::RenderTheme::paintMediaOverlayPlayButton):
2550 * rendering/RenderThemeChromiumAndroid.cpp:
2551 (WebCore::RenderThemeChromiumAndroid::paintMediaOverlayPlayButton):
2553 * rendering/RenderThemeChromiumAndroid.h:
2555 2012-07-28 Mario Sanchez Prada <msanchez@igalia.com>
2557 [GTK] Add a new and reusable enchant-based spellchecker in WebCore
2558 https://bugs.webkit.org/show_bug.cgi?id=90269
2560 Reviewed by Martin Robinson.
2562 Move enchant specific code down to WebCore, into a new class
2563 TextCheckerEnchant, that we can use from WK1 and WK2.
2565 * GNUmakefile.am: Add flags to handle the SPELLCHECK feature.
2566 * GNUmakefile.list.am: Added new files.
2567 * platform/text/gtk/TextCheckerEnchant.cpp: Added.
2568 (getAvailableDictionariesCallback):
2569 (TextCheckerEnchant::TextCheckerEnchant):
2570 (TextCheckerEnchant::~TextCheckerEnchant):
2571 (TextCheckerEnchant::ignoreWord):
2572 (TextCheckerEnchant::learnWord):
2573 (TextCheckerEnchant::checkSpellingOfString):
2574 (TextCheckerEnchant::getGuessesForWord):
2575 (TextCheckerEnchant::updateSpellCheckingLanguages):
2576 (TextCheckerEnchant::freeEnchantBrokerDictionaries):
2577 * platform/text/gtk/TextCheckerEnchant.h: Added.
2579 (TextCheckerEnchant):
2580 (WebCore::TextCheckerEnchant::create):
2582 2012-07-28 Vineet Chaudhary <rgf748@motorola.com>
2584 [Clamp] support in binding generator.
2585 https://bugs.webkit.org/show_bug.cgi?id=77605
2587 Reviewed by Kentaro Hara.
2589 Currently [Clamp] extended attribute in IDL files.
2590 Spec: http://www.w3.org/TR/2012/CR-WebIDL-20120419/#Clamp
2594 * bindings/scripts/CodeGeneratorCPP.pm:
2595 (SkipFunction): Skips methods with [Clamp] parameters.
2596 * bindings/scripts/CodeGeneratorGObject.pm:
2597 (SkipFunction): Skips methods with [Clamp] parameters.
2598 * bindings/scripts/CodeGeneratorJS.pm:
2599 (GenerateParametersCheck): Support [Clamp] for JSBindings.
2600 * bindings/scripts/CodeGeneratorObjC.pm:
2601 (SkipFunction): Skips methods with [Clamp] parameters.
2602 * bindings/scripts/CodeGeneratorV8.pm:
2603 (GenerateParametersCheck): Support [Clamp] for V8Bindings.
2604 * bindings/scripts/IDLAttributes.txt: Added [Clamp] to attributes list.
2605 * bindings/scripts/test/JS/JSTestObj.cpp: Test.
2606 (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
2607 * bindings/scripts/test/JS/JSTestObj.h:
2608 * bindings/scripts/test/TestObj.idl:
2609 * bindings/scripts/test/V8/V8TestObj.cpp:
2610 (WebCore::TestObjV8Internal::classMethodWithClampCallback):
2611 (TestObjV8Internal):
2613 2012-07-27 Sheriff Bot <webkit.review.bot@gmail.com>
2615 Unreviewed, rolling out r123908.
2616 http://trac.webkit.org/changeset/123908
2617 https://bugs.webkit.org/show_bug.cgi?id=92572
2619 Broke Chromium Linux compile (Requested by pkasting on
2623 * css/CSSPrimitiveValueMappings.h:
2624 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2625 * css/CSSValueKeywords.in:
2626 * css/mediaControls.css:
2627 * css/mediaControlsChromiumAndroid.css:
2628 (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
2629 * html/shadow/MediaControlElements.cpp:
2631 * html/shadow/MediaControlElements.h:
2633 * html/shadow/MediaControlRootElementChromium.cpp:
2634 (WebCore::MediaControlChromiumEnclosureElement::create):
2636 (WebCore::MediaControlChromiumEnclosureElement::shadowPseudoId):
2637 (WebCore::MediaControls::create):
2638 (WebCore::MediaControlRootElementChromium::create):
2639 * html/shadow/MediaControlRootElementChromium.h:
2640 (MediaControlChromiumEnclosureElement):
2641 (MediaControlRootElementChromium):
2642 * html/shadow/MediaControlRootElementChromiumAndroid.cpp: Removed.
2643 * html/shadow/MediaControlRootElementChromiumAndroid.h: Removed.
2644 * platform/ThemeTypes.h:
2645 * rendering/RenderMediaControlsChromium.cpp:
2646 (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
2647 * rendering/RenderTheme.cpp:
2648 (WebCore::RenderTheme::paint):
2649 * rendering/RenderTheme.h:
2650 * rendering/RenderThemeChromiumAndroid.cpp:
2651 * rendering/RenderThemeChromiumAndroid.h:
2653 2012-07-27 Eli Fidler <efidler@rim.com>
2655 [BlackBerry] Use new LocaleHandler.
2656 https://bugs.webkit.org/show_bug.cgi?id=92548
2658 Reviewed by Yong Li.
2662 * platform/blackberry/LocalizedStringsBlackBerry.cpp:
2663 (WebCore::platformLanguage):
2664 * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
2665 (WebCore::ResourceRequest::initializePlatformRequest):
2666 * platform/text/blackberry/TextBreakIteratorInternalICUBlackBerry.cpp:
2667 (WebCore::currentSearchLocaleID):
2668 (WebCore::currentTextBreakLocaleID):
2670 2012-07-27 Gyuyoung Kim <gyuyoung.kim@samsung.com>
2672 Change constructor with explicit constructor in WebCore/Modules
2673 https://bugs.webkit.org/show_bug.cgi?id=92529
2675 Reviewed by Kentaro Hara.
2677 As a step to let *explicit* keyword add to constructors which have a parameter,
2678 *explicit* keyword is added to Source/WebCore/Modules in order to avoid implicit
2681 No new tests. Covered by existing tests.
2683 * Modules/filesystem/LocalFileSystem.h:
2684 (WebCore::LocalFileSystem::LocalFileSystem):
2685 * Modules/filesystem/Metadata.h:
2686 (WebCore::Metadata::Metadata):
2687 * Modules/filesystem/SyncCallbackHelper.h:
2688 (WebCore::SyncCallbackHelper::SuccessCallbackImpl::SuccessCallbackImpl):
2689 (WebCore::SyncCallbackHelper::ErrorCallbackImpl::ErrorCallbackImpl):
2690 * Modules/mediastream/IceCandidate.h:
2692 * Modules/mediastream/NavigatorUserMediaError.h:
2693 (WebCore::NavigatorUserMediaError::NavigatorUserMediaError):
2694 * Modules/mediastream/SessionDescription.h:
2695 (SessionDescription):
2696 * Modules/mediastream/UserMediaController.h:
2697 (UserMediaController):
2698 * Modules/notifications/NotificationController.h:
2699 (NotificationController):
2700 * Modules/speech/SpeechRecognition.h:
2701 (SpeechRecognition):
2702 * Modules/speech/SpeechRecognitionController.h:
2703 (SpeechRecognitionController):
2704 * Modules/speech/SpeechRecognitionEvent.h:
2705 (SpeechRecognitionEvent):
2706 * Modules/speech/SpeechRecognitionResultList.h:
2707 (SpeechRecognitionResultList):
2708 * Modules/vibration/Vibration.h:
2710 * Modules/webaudio/AudioBuffer.h:
2712 * Modules/webaudio/AudioContext.h:
2714 * Modules/webaudio/AudioNodeInput.h:
2716 * Modules/webaudio/AudioSummingJunction.h:
2717 (AudioSummingJunction):
2718 * Modules/webaudio/BiquadDSPKernel.h:
2719 (WebCore::BiquadDSPKernel::BiquadDSPKernel):
2720 * Modules/webaudio/DefaultAudioDestinationNode.h:
2721 (DefaultAudioDestinationNode):
2722 * Modules/webaudio/DelayDSPKernel.h:
2724 * Modules/webaudio/OfflineAudioCompletionEvent.h:
2725 (OfflineAudioCompletionEvent):
2726 * Modules/webaudio/WaveShaperDSPKernel.h:
2727 (WebCore::WaveShaperDSPKernel::WaveShaperDSPKernel):
2728 * Modules/webaudio/WaveShaperNode.h:
2730 * Modules/webaudio/WaveTable.h:
2732 * Modules/webdatabase/DatabaseAuthorizer.h:
2733 (DatabaseAuthorizer):
2734 * Modules/webdatabase/DatabaseTask.h:
2735 (Database::DatabaseTransactionTask):
2736 * Modules/webdatabase/DatabaseTracker.h:
2738 * Modules/webdatabase/SQLCallbackWrapper.h:
2739 (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask):
2740 * Modules/webdatabase/SQLException.h:
2741 (WebCore::SQLException::SQLException):
2742 * Modules/websockets/WebSocket.h:
2743 * Modules/websockets/WebSocketExtensionProcessor.h:
2744 (WebCore::WebSocketExtensionProcessor::WebSocketExtensionProcessor):
2746 2012-07-27 Kentaro Hara <haraken@chromium.org>
2748 [V8] Optimize Element::getAttributeNS() by replacing String with AtomicString
2749 https://bugs.webkit.org/show_bug.cgi?id=90276
2751 Reviewed by Adam Barth.
2753 In r121439, we changed the argument type of Element::getAttribute()
2754 from String to AtomicString for optimization. This patch changes the
2755 argument type of Element::getAttributeNS() from String to AtomicString.
2757 Actually this change affects V8 performance only.
2759 [JSC without the patch]
2760 The binding code converts a given JavaScript string to a String
2761 -> the String is passed to getAttributeNS()
2762 -> the String is converted to an AtomicString when it is passed to
2763 QualifiedName() constructor.
2765 [JSC with the patch]
2766 The binding code converts a given JavaScript string to a String
2767 -> the String is converted to an AtomicString when it is passed to
2769 -> the AtomicString is passed to QualifiedName() constructor.
2771 [V8 without the patch]
2772 The binding code retrieves a cached external String for a given
2774 -> the String is passed to getAttributeNS()
2775 -> the String is converted to AtomicString when it is passed to
2776 QualifiedName() constructor.
2779 The binding code retrieves a cached external AtomicString for a given
2781 -> the AtomicString is passed to getAttributeNS()
2782 -> the AtomicString is passed to QualifiedName() constructor.
2784 In this way, in JSC, the change affects where a String is converted to
2785 an AtomicString. On the other hand, in V8, (since the AtomicString is already
2786 cached,) we can skip the conversion step.
2788 Performance test: https://bugs.webkit.org/attachment.cgi?id=150158
2790 getAttributeNS (Chromium/Linux):
2791 577.80ms => 454.60ms
2794 (WebCore::Element::getAttributeNS):
2798 2012-07-27 Sheriff Bot <webkit.review.bot@gmail.com>
2800 Unreviewed, rolling out r123679.
2801 http://trac.webkit.org/changeset/123679
2802 https://bugs.webkit.org/show_bug.cgi?id=92565
2804 Slowed down HTML parsing by 3.6% (Requested by abarth on
2807 * html/FTPDirectoryDocument.cpp:
2808 (WebCore::FTPDirectoryDocumentParser::append):
2809 * html/parser/HTMLEntityParser.cpp:
2810 (WebCore::HTMLEntityParser::consumeNamedEntity):
2811 * html/parser/HTMLParserIdioms.cpp:
2812 (WebCore::stripLeadingAndTrailingHTMLSpaces):
2813 * html/parser/HTMLSourceTracker.cpp:
2814 (WebCore::HTMLSourceTracker::sourceForToken):
2815 * loader/cache/CachedScript.cpp:
2816 (WebCore::CachedScript::script):
2817 * platform/text/SegmentedString.cpp:
2818 (WebCore::SegmentedString::SegmentedString):
2819 (WebCore::SegmentedString::operator=):
2820 (WebCore::SegmentedString::clear):
2821 (WebCore::SegmentedString::append):
2822 (WebCore::SegmentedString::prepend):
2823 (WebCore::SegmentedString::advanceSubstring):
2824 (WebCore::SegmentedString::advance):
2825 (WebCore::SegmentedString::advanceSlowCase):
2826 (WebCore::SegmentedString::advanceAndUpdateLineNumberSlowCase):
2827 * platform/text/SegmentedString.h:
2828 (WebCore::SegmentedSubstring::SegmentedSubstring):
2829 (WebCore::SegmentedSubstring::clear):
2830 (WebCore::SegmentedSubstring::appendTo):
2831 (SegmentedSubstring):
2832 (WebCore::SegmentedString::SegmentedString):
2833 (WebCore::SegmentedString::push):
2834 (WebCore::SegmentedString::isEmpty):
2835 (WebCore::SegmentedString::lookAhead):
2836 (WebCore::SegmentedString::lookAheadIgnoringCase):
2837 (WebCore::SegmentedString::advance):
2838 (WebCore::SegmentedString::advanceAndASSERT):
2839 (WebCore::SegmentedString::advanceAndASSERTIgnoringCase):
2840 (WebCore::SegmentedString::advancePastNewlineAndUpdateLineNumber):
2842 (WebCore::SegmentedString::advancePastNonNewline):
2843 (WebCore::SegmentedString::advanceAndUpdateLineNumber):
2844 (WebCore::SegmentedString::operator*):
2845 (WebCore::SegmentedString::operator->):
2846 (WebCore::SegmentedString::current):
2847 (WebCore::SegmentedString::equalsLiterally):
2848 (WebCore::SegmentedString::equalsIgnoringCase):
2849 (WebCore::SegmentedString::lookAheadInline):
2850 (WebCore::SegmentedString::lookAheadSlowCase):
2851 * xml/parser/CharacterReferenceParserInlineMethods.h:
2852 (WebCore::consumeCharacterReference):
2853 * xml/parser/MarkupTokenizerBase.h:
2854 (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::nextInputCharacter):
2855 (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::peek):
2856 (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::advance):
2858 2012-07-27 Jer Noble <jer.noble@apple.com>
2860 Reset the set of "seen" plugins when the main frame load is committed.
2861 https://bugs.webkit.org/show_bug.cgi?id=92564
2863 Reviewed by Anders Carlsson.
2865 Because the Page object is re-used across navigation and reload, reset the list
2866 of seen plugins when the main frame load commits. This gives a good baseline to
2867 compare against the number of pages loaded.
2869 No new tests; the "seen" plugin list is for diagnostic purposes only.
2871 * loader/FrameLoader.cpp:
2872 (WebCore::FrameLoader::dispatchDidCommitLoad):
2874 (WebCore::Page::resetSeenPlugins):
2877 2012-07-27 Sukolsak Sakshuwong <sukolsak@google.com>
2879 execCommand copies the backgroung-color of the enclosing element to the element being edited.
2880 https://bugs.webkit.org/show_bug.cgi?id=91783
2882 Reviewed by Ryosuke Niwa.
2884 InsertListCommand and some other edit commands remove redundant
2885 style properties after their DOM modification by using
2886 StylePropertySet::removeEquivalentProperties. However, this method
2887 does not remove redundant background-color properties such as
2888 "background-color: white" and "background-color: #fff" because
2889 it compares them using cssText and thus treats them as different.
2890 Add code to convert background colors to RGBA and then compare them.
2892 Test: editing/style/redundant-background-color.html
2894 * editing/EditingStyle.cpp:
2895 (WebCore::getRGBABackgroundColor):
2897 (WebCore::getPropertiesNotIn):
2899 2012-07-27 Gyuyoung Kim <gyuyoung.kim@samsung.com>
2901 [EFL] Return 0 when network is offline
2902 https://bugs.webkit.org/show_bug.cgi?id=92454
2904 Reviewed by Kenneth Rohde Christiansen.
2906 Network Info latest spec says 0 is returned when network is offline.
2907 r123769 modified to return infinity value when network is offiline.
2909 * platform/efl/NetworkInfoProviderEfl.cpp:
2910 (WebCore::NetworkInfoProviderEfl::bandwidth):
2912 2012-07-27 Scott Graham <scottmg@chromium.org>
2914 Change navigator.webkitGamepads[] to navigator.webkitGetGamepads()
2915 https://bugs.webkit.org/show_bug.cgi?id=92533
2917 Reviewed by Adam Barth.
2919 Per discussion on public-webapps. Pages that enumerate navigator were
2920 causing background resources to be created to poll hardware
2921 unintentionally. By changing to an explicit function call, this is
2922 avoided (and the API becomes more clear too). This change updates the
2923 implementation to match the current ED spec.
2925 * Modules/gamepad/NavigatorGamepad.cpp:
2926 (WebCore::NavigatorGamepad::webkitGetGamepads):
2927 * Modules/gamepad/NavigatorGamepad.h:
2929 * Modules/gamepad/NavigatorGamepad.idl:
2930 * bindings/generic/RuntimeEnabledFeatures.h:
2931 (WebCore::RuntimeEnabledFeatures::setWebkitGetGamepadsEnabled):
2932 (WebCore::RuntimeEnabledFeatures::webkitGetGamepadsEnabled):
2934 2012-07-27 Brady Eidson <beidson@apple.com>
2936 Plugins should not be allowed to override standard properties/attributes in non-standard worlds
2937 <rdar://problem/11975252> and https://bugs.webkit.org/show_bug.cgi?id=92519
2939 Reviewed by Anders Carlsson.
2941 Change the 3 plugin-owning element's custom bindings to prefer built-in properties if they exist.
2942 When they do they don't give the plugin a chance to override.
2944 Test: plugins/npruntime/overrides-all-properties.html
2946 Add plugin custom functions to prefer built-in properties over plugin scriptable object properties:
2947 * bindings/js/JSPluginElementFunctions.h:
2948 (WebCore::pluginElementCustomGetOwnPropertySlot):
2949 (WebCore::pluginElementCustomGetOwnPropertyDescriptor):
2951 Use those new custom functions for getting properties:
2952 * bindings/js/JSHTMLAppletElementCustom.cpp:
2953 (WebCore::JSHTMLAppletElement::getOwnPropertySlotDelegate):
2954 (WebCore::JSHTMLAppletElement::getOwnPropertyDescriptorDelegate):
2955 * bindings/js/JSHTMLEmbedElementCustom.cpp:
2956 (WebCore::JSHTMLEmbedElement::getOwnPropertySlotDelegate):
2957 (WebCore::JSHTMLEmbedElement::getOwnPropertyDescriptorDelegate):
2958 * bindings/js/JSHTMLObjectElementCustom.cpp:
2959 (WebCore::JSHTMLObjectElement::getOwnPropertySlotDelegate):
2960 (WebCore::JSHTMLObjectElement::getOwnPropertyDescriptorDelegate):
2962 2012-07-27 Arnaud Renevier <a.renevier@sisa.samsung.com>
2964 use createUninitialized when creating TypedArray from another array
2965 https://bugs.webkit.org/show_bug.cgi?id=92518
2967 Reviewed by Kenneth Russell.
2969 When creating a Typed Array from another array, we fill it with values
2970 from the source array. So, we can create it uninitialized. This is
2971 make constructor about 35% faster when constructed with another typed
2974 Test: fast/canvas/webgl/array-constructor.html
2976 * bindings/js/JSArrayBufferViewHelper.h:
2977 (WebCore::constructArrayBufferViewWithTypedArrayArgument):
2978 (WebCore::constructArrayBufferView):
2980 2012-07-27 Eli Fidler <efidler@rim.com>
2982 [BlackBerry] Adapt to change in the FontInfo platform API.
2983 https://bugs.webkit.org/show_bug.cgi?id=92547
2989 * page/blackberry/SettingsBlackBerry.cpp:
2990 (WebCore::Settings::initializeDefaultFontFamilies):
2992 2012-07-27 Antoine Labour <piman@chromium.org>
2994 [chromium] Fix color matrix filter computation so that filters that don't need clamping are correctly detected as such
2995 https://bugs.webkit.org/show_bug.cgi?id=92452
2997 Reviewed by Stephen White.
2999 Because of precision issues, some filters were returning true to
3000 matrixNeedsClamping when they can return false. This fixes it.
3002 No new tests in this CL, a follow-up change refactors the code to add
3005 * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
3007 2012-07-27 Jer Noble <jer.noble@apple.com>
3009 Add diagnostic logging for plugins-per-page.
3010 https://bugs.webkit.org/show_bug.cgi?id=92538
3012 Reviewed by Anders Carlsson.
3014 Add some diagnostic logging for whether a page has seen a plugin, and
3015 whether a page has seen a plugin of a specific type.
3017 Move the diagnostic logging out of the elemements themselves:
3018 * html/HTMLEmbedElement.cpp:
3019 (WebCore::HTMLEmbedElement::updateWidget):
3020 * html/HTMLObjectElement.cpp:
3021 (WebCore::HTMLObjectElement::updateWidget):
3023 Instead, log when the plugin is requested, thereby catching plugins which are
3024 rejected because, e.g., Java is disabled or not installed:
3025 * loader/SubframeLoader.cpp:
3026 (WebCore::logPluginRequest):
3027 (WebCore::SubframeLoader::requestObject):
3028 (WebCore::SubframeLoader::createJavaAppletWidget):
3030 Add new diagnostic key values:
3031 * page/DiagnosticLoggingKeys.cpp:
3032 (WebCore::DiagnosticLoggingKeys::pageContainsPluginKey):
3033 (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOnePluginKey):
3034 * page/DiagnosticLoggingKeys.h:
3036 Add a map of plugin types seen per-page for diagnostic purposes:
3038 (WebCore::Page::hasSeenAnyPlugin):
3039 (WebCore::Page::hasSeenPlugin):
3040 (WebCore::Page::sawPlugin):
3043 2012-07-27 Patrick Gansterer <paroga@webkit.org>
3045 [WINCE] Use macros from ICU instead of defining the same functionality again
3046 https://bugs.webkit.org/show_bug.cgi?id=92530
3048 Reviewed by Ryosuke Niwa.
3050 Replace isHighSurrogate() with U16_IS_LEAD(), isLowSurrogate() with
3051 U16_IS_TRAIL() and surrogateToUcs4() with U16_GET_SUPPLEMENTARY().
3053 * html/FTPDirectoryDocument.cpp:
3054 (WebCore::processFileDateString):
3055 * loader/archive/mhtml/MHTMLArchive.cpp:
3056 (WebCore::MHTMLArchive::generateMHTMLData):
3057 * platform/graphics/wince/FontWinCE.cpp:
3058 (WebCore::generateComponents):
3060 2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
3062 Build warning in CSSPrimitiveValueMappings.h when CSS_STICKY_POSITION is disabled
3063 https://bugs.webkit.org/show_bug.cgi?id=92523
3065 Reviewed by Simon Fraser.
3067 Move #ifdef in CSSPrimitiveValueMappings.h to silent compilation warning
3068 when CSS_STICKY_POSITION is disabled.
3070 No new tests, no behavior change.
3072 * css/CSSPrimitiveValueMappings.h:
3073 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3075 2012-07-27 Vivek Galatage <vivekgalatage@gmail.com>
3077 DragController should ascertain dragClient to be non-null
3078 https://bugs.webkit.org/show_bug.cgi?id=92474
3080 Reviewed by Tony Chang.
3082 The DragController must always ensure a valid dragClient object. Hence
3083 adding the ASSERT to assure that.
3085 No new tests. Added assertion for PageClient.dragClient.
3087 * page/DragController.cpp:
3088 (WebCore::DragController::DragController):
3090 2012-07-27 Adrienne Walker <enne@google.com>
3092 [chromium] Clean up LayerRendererChromium::drawTexturedQuad
3093 https://bugs.webkit.org/show_bug.cgi?id=91823
3095 Reviewed by James Robinson.
3097 LayerRendererChromium::drawTexturedQuad has been around forever and
3098 over time has developed several problems:
3099 - Confusingly named relative to drawTextureQuad
3100 - All but one callers identically manipulate the transform matrix
3101 - Lots of optional parameters that only few functions use
3103 This patch breaks up drawTexturedQuad into setShaderOpacity (for
3104 optional opacity values sent to the shader), setShaderFloatQuad (the
3105 full FloatQuad used by AA shaders), and drawQuadGeometry (actually
3106 draw the geometry, and wrap the transform logic that was duplicated
3109 No new tests; no change in functionality.
3111 * platform/graphics/chromium/LayerRendererChromium.cpp:
3112 (WebCore::LayerRendererChromium::drawCheckerboardQuad):
3113 (WebCore::LayerRendererChromium::drawBackgroundFilters):
3114 (WebCore::LayerRendererChromium::drawRenderPassQuad):
3115 (WebCore::LayerRendererChromium::drawSolidColorQuad):
3116 (WebCore::LayerRendererChromium::drawTileQuad):
3117 (WebCore::LayerRendererChromium::drawYUVVideoQuad):
3118 (WebCore::LayerRendererChromium::drawStreamVideoQuad):
3119 (WebCore::LayerRendererChromium::drawTextureQuad):
3120 (WebCore::LayerRendererChromium::drawIOSurfaceQuad):
3121 (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
3122 (WebCore::LayerRendererChromium::setShaderFloatQuad):
3123 (WebCore::LayerRendererChromium::setShaderOpacity):
3124 (WebCore::LayerRendererChromium::drawQuadGeometry):
3125 (WebCore::LayerRendererChromium::copyTextureToFramebuffer):
3126 * platform/graphics/chromium/LayerRendererChromium.h:
3127 (LayerRendererChromium):
3129 2012-07-27 Shawn Singh <shawnsingh@chromium.org>
3131 [chromium] CCLayerTreeHost placeholder scissor should be deviceViewportSize instead of viewportSize
3132 https://bugs.webkit.org/show_bug.cgi?id=92469
3134 Reviewed by Adrienne Walker.
3136 We were accidentally using viewportSize instead of
3137 deviceViewportSize in a particular place in code. Recent
3138 refactoring to use tighter scissor rects exposed this problem.
3140 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3141 (WebCore::CCLayerTreeHost::updateLayers):
3143 2012-07-27 Kevin Ellis <kevers@chromium.org>
3145 Search cancel button is hard to activate with a tap gesture even if touch adjustment is enabled.
3146 https://bugs.webkit.org/show_bug.cgi?id=91894
3148 Reviewed by Antonio Gomes.
3150 Update check for determining if a node responds to tap gestures.
3151 Previously, the cancel button was being discarded as a candidate for
3152 touch adjustment if the touch area clipped the text input region
3153 because the candidate pruning process failed to account for the cancel
3154 button having a default mouse handler. Possibly an interim fix,
3155 depending on resolution to 92093.
3157 Test: touchadjustment/search-cancel.html
3159 * page/TouchAdjustment.cpp:
3161 (WebCore::TouchAdjustment::nodeRespondsToTapGesture):
3163 2012-07-27 Varun Jain <varunjain@chromium.org>
3165 Animated SVGs do not clear previous frame completely in hidpi mode.
3166 https://bugs.webkit.org/show_bug.cgi?id=92395
3168 Reviewed by Darin Adler.
3170 The rect thats is cleared in subsequent frames needed to be scaled with device scale.
3172 Test: svg/as-image/animated-svg-repaints-completely-in-hidpi.html
3174 * svg/graphics/SVGImage.cpp:
3175 (WebCore::SVGImage::drawSVGToImageBuffer):
3177 2012-07-27 Scott Graham <scottmg@chromium.org>
3179 Fix COMPILE_ASSERT for InlineFlowBox growing
3180 https://bugs.webkit.org/show_bug.cgi?id=92541
3182 Reviewed by Dan Bernstein.
3184 Use unsigned instead of bool to keep size small on Windows.
3188 * rendering/InlineFlowBox.h:
3191 2012-07-27 Beth Dakin <bdakin@apple.com>
3193 https://bugs.webkit.org/show_bug.cgi?id=92327
3194 -webkit-background-clip:text is blurry in WebKit 1 apps when
3195 deviceScaleFactor > 1
3197 <rdar://problem/11683788>
3199 Reviewed by Simon Fraser.
3201 The bug here is that the code to make createCompatibleBuffer() HiDPI-savvy
3202 assumed that the deviceScaleFactor would always be baked into the CTM of the
3203 GraphicsContext. But that is NOT the case in WebKit 1.
3205 createCompatibleBuffer() is used for clip text and gradients.
3207 Now getCTM() takes a parameter indicating whether the result should definitely
3208 include the device scale, or if it should possibly included the device scale,
3209 which is the option that matches old behavior.
3210 * platform/graphics/GraphicsContext.h:
3212 * platform/graphics/cairo/GraphicsContextCairo.cpp:
3213 (WebCore::GraphicsContext::getCTM):
3214 * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
3215 (WebCore::GraphicsContext::getCTM):
3216 * platform/graphics/qt/GraphicsContextQt.cpp:
3217 (WebCore::GraphicsContext::getCTM):
3218 * platform/graphics/skia/GraphicsContextSkia.cpp:
3219 (WebCore::GraphicsContext::getCTM):
3220 * platform/graphics/wince/GraphicsContextWinCE.cpp:
3221 (WebCore::GraphicsContext::getCTM):
3222 * platform/graphics/wx/GraphicsContextWx.cpp:
3223 (WebCore::GraphicsContext::getCTM):
3225 Actually use the new parameter in the CG implementation. Use CG API to get a
3226 matrix that definitely includes the device scale when that is required.
3227 * platform/graphics/cg/GraphicsContextCG.cpp:
3228 (WebCore::GraphicsContext::getCTM):
3230 Remove some symbol cruft that doesn't seem to require a replacement.
3233 Use DefinitelyIncludeDeviceScale when getting the CTM in the buggy spot.
3234 * platform/graphics/GraphicsContext.cpp:
3235 (WebCore::GraphicsContext::createCompatibleBuffer):
3237 The ImageBuffer for gradients is created using createCompatibleBuffer(), and since
3238 createCompatibleBuffer() now uses getCTM(DefinitelyIncludeDeviceScale) to
3239 determine appropriate sizing, drawPattern() should use that same matrix to
3240 determine pattern sizing.
3241 * platform/graphics/GeneratorGeneratedImage.cpp:
3242 (WebCore::GeneratorGeneratedImage::drawPattern):
3244 2012-07-27 Tony Chang <tony@chromium.org>
3246 flex-wrap: wrap not wrapping for % sized items in column flow
3247 https://bugs.webkit.org/show_bug.cgi?id=92324
3249 Reviewed by Ojan Vafai.
3251 We were using trying to use the value of contentLogicalHeight() before having called computeLogicalHeight()
3252 in a few places. Fix this in mainAxisContentExtent() rather than at the callers.
3254 Test: css3/flexbox/percentage-heights.html
3256 * rendering/RenderFlexibleBox.cpp:
3257 (WebCore::RenderFlexibleBox::mainAxisContentExtent):
3258 (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild): If we haven't called computeLogicalHeight, we try to compute
3259 the height based on the fixed flexbox value. min/max don't matter here since percent values are only based on height/width.
3260 * rendering/RenderFlexibleBox.h: Drop const because computeContentLogicalHeightUsing is not const. I can
3261 try making computeContentLogicalHeightUsing const in a follow up change (might be non-trivial).
3263 2012-07-27 Min Qin <qinmin@chromium.org>
3265 Add an overlay play button to media controls on android
3266 https://bugs.webkit.org/show_bug.cgi?id=92132
3268 Reviewed by Adam Barth.
3270 This change adds an overlay play button to the media controls for android.
3271 No tests for now as this setting is not being used by other port.
3272 Will add a test and adjust all the test expectations when we upstream the layout tests for android.
3275 * css/CSSPrimitiveValueMappings.h:
3276 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3277 * css/CSSValueKeywords.in:
3278 * css/mediaControls.css:
3279 (audio::-webkit-media-controls-overlay-play-button, video::-webkit-media-controls-overlay-play-button):
3280 * css/mediaControlsChromiumAndroid.css:
3281 (audio::-webkit-media-controls-overlay-enclosure):
3282 (video::-webkit-media-controls-overlay-enclosure):
3283 (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
3284 (video::-webkit-media-controls-overlay-play-button):
3285 * html/shadow/MediaControlElements.cpp:
3286 (WebCore::MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement):
3288 (WebCore::MediaControlOverlayPlayButtonElement::create):
3289 (WebCore::MediaControlOverlayPlayButtonElement::defaultEventHandler):
3290 (WebCore::MediaControlOverlayPlayButtonElement::updateDisplayType):
3291 (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
3292 * html/shadow/MediaControlElements.h:
3293 (MediaControlOverlayPlayButtonElement):
3295 * html/shadow/MediaControlRootElementChromium.cpp:
3296 (WebCore::MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement):
3297 (WebCore::MediaControlPanelEnclosureElement::create):
3299 (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
3300 (WebCore::MediaControlRootElementChromium::create):
3301 (WebCore::MediaControlRootElementChromium::initializeControls):
3302 * html/shadow/MediaControlRootElementChromium.h:
3303 (MediaControlChromiumEnclosureElement):
3305 (MediaControlPanelEnclosureElement):
3306 (MediaControlRootElementChromium):
3307 * html/shadow/MediaControlRootElementChromiumAndroid.cpp: Added.
3309 (WebCore::MediaControlOverlayEnclosureElement::MediaControlOverlayEnclosureElement):
3310 (WebCore::MediaControlOverlayEnclosureElement::create):
3311 (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId):
3312 (WebCore::MediaControlRootElementChromiumAndroid::MediaControlRootElementChromiumAndroid):
3313 (WebCore::MediaControls::create):
3314 (WebCore::MediaControlRootElementChromiumAndroid::create):
3315 (WebCore::MediaControlRootElementChromiumAndroid::setMediaController):
3316 (WebCore::MediaControlRootElementChromiumAndroid::playbackStarted):
3317 (WebCore::MediaControlRootElementChromiumAndroid::playbackStopped):
3318 * html/shadow/MediaControlRootElementChromiumAndroid.h: Added.
3320 (MediaControlOverlayEnclosureElement):
3321 (MediaControlRootElementChromiumAndroid):
3322 * platform/ThemeTypes.h:
3323 * rendering/RenderMediaControlsChromium.cpp:
3324 (WebCore::paintMediaOverlayPlayButton):
3326 (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
3327 * rendering/RenderTheme.cpp:
3328 (WebCore::RenderTheme::paint):
3329 * rendering/RenderTheme.h:
3330 (WebCore::RenderTheme::paintMediaOverlayPlayButton):
3331 * rendering/RenderThemeChromiumAndroid.cpp:
3332 (WebCore::RenderThemeChromiumAndroid::paintMediaOverlayPlayButton):
3334 * rendering/RenderThemeChromiumAndroid.h:
3336 2012-07-27 Anders Carlsson <andersca@apple.com>
3338 Show the unavailable plug-in indicator for Java applets as well
3339 https://bugs.webkit.org/show_bug.cgi?id=92521
3341 Reviewed by Sam Weinig.
3343 Now that <applet> behaves more like <embed> and <object>, make sure that we show the unavailable plug-in indicator
3344 and call the correct error callbacks if we fail to instantiate the plug-in.
3347 Export a symbol needed by WebKit2.
3349 * html/HTMLAppletElement.cpp:
3350 (WebCore::HTMLAppletElement::HTMLAppletElement):
3351 Set the correct service type.
3353 * loader/SubframeLoader.cpp:
3354 (WebCore::SubframeLoader::createJavaAppletWidget):
3355 Enable the unavailable plug-in indicator if we fail to create the java applet widget.
3357 2012-07-27 Dan Bernstein <mitz@apple.com>
3359 Hit testing near a column break can return a result from an adjacent column when there is leading
3360 https://bugs.webkit.org/show_bug.cgi?id=92524
3362 Reviewed by Anders Carlsson.
3364 The fix for <http://webkit.org/b/92311> relied on the existence of a pagination strut for
3365 detecting that a line was at the beginning of a new column. However, when a line naturally
3366 falls at the beginning of a column, there is no pagination strut, and the check failed.
3368 Test: fast/multicol/hit-test-end-of-column-with-line-height.html
3370 * rendering/InlineFlowBox.h:
3371 (WebCore::InlineFlowBox::InlineFlowBox): Added initializer for new member variable.
3372 (InlineFlowBox): Added m_isFirstAfterPageBreak member variable.
3373 * rendering/RenderBlock.cpp:
3374 (WebCore::RenderBlock::positionForPointWithInlineChildren): Changed the test for whether a
3375 line was at the beginning of a column from relying on a pagination strut to checking
3376 isFirstAfterPageBreak(). Also refined the hit test itself to include the leading above such
3378 (WebCore::RenderBlock::adjustLinePositionForPagination): Added calls to
3379 setIsFirstAfterPageBreak() to first reset this flag, then set it to true if necessary.
3380 * rendering/RootInlineBox.h:
3381 (WebCore::RootInlineBox::isFirstAfterPageBreak): Added this accessor.
3382 (WebCore::RootInlineBox::setIsFirstAfterPageBreak): Ditto.
3384 2012-07-27 John J. Barton <johnjbarton@johnjbarton.com>
3386 Web Inspector: Allow front_end to be loaded into an iframe
3387 https://bugs.webkit.org/show_bug.cgi?id=92437
3389 Reviewed by Pavel Feldman.
3391 This change only affects 'embedders' of the inspector/front_end. No change of function for WebKit ports.
3393 * inspector/front-end/ExtensionAPI.js:
3394 Replace window.top with window.parent two places. When WebInspector is loaded as the main window content,
3395 then extension iframes have window.top === window.parent; when WebInspector is loaded as an iframe, then
3396 extensions are iframes in iframes and we need to use a relative address window.parent.
3397 (injectedExtensionAPI.ExtensionViewImpl.dispatchShowEvent):
3398 (injectedExtensionAPI.ExtensionViewImpl):
3399 (injectedExtensionAPI.ExtensionServerClient):
3400 WebKit/chromium/scripts/generate_devtools_extension_api.py:
3401 The current number of frames is used in a dynamically created identifier. Again we replace 'top' by
3404 2012-07-27 John J. Barton <johnjbarton@johnjbarton.com>
3406 Web Inspector: Allow front_end to be loaded into an iframe
3407 https://bugs.webkit.org/show_bug.cgi?id=92437
3409 Reviewed by Pavel Feldman.
3411 This change only affects 'embedders' of the inspector/front_end. No change of function for WebKit ports.
3413 * inspector/front-end/ExtensionAPI.js:
3414 Replace window.top with window.parent two places. When WebInspector is loaded as the main window content,
3415 then extension iframes have window.top === window.parent; when WebInspector is loaded as an iframe, then
3416 extensions are iframes in iframes and we need to use a relative address window.parent.
3417 (injectedExtensionAPI.ExtensionViewImpl.dispatchShowEvent):
3418 (injectedExtensionAPI.ExtensionViewImpl):
3419 (injectedExtensionAPI.ExtensionServerClient):
3420 WebKit/chromium/scripts/generate_devtools_extension_api.py:
3421 The current number of frames is used in a dynamically created identifier. Again we replace 'top' by
3424 2012-07-27 Vivek Galatage <vivekgalatage@gmail.com>
3426 Web Inspector: InspectorPageAgent should ascertain document to be non-null in updateViewMetrics()
3427 https://bugs.webkit.org/show_bug.cgi?id=92476
3429 Reviewed by Pavel Feldman.
3431 InspectorPageAgent should check for document object being null. As pages created with blank URL might
3432 not have the document object, this causes a crash.
3434 No new tests as added null check.
3436 * inspector/InspectorPageAgent.cpp:
3437 (WebCore::InspectorPageAgent::updateViewMetrics):
3439 2012-07-27 Mike West <mkwst@chromium.org>
3441 CSP directives containing invalid characters should log an error.
3442 https://bugs.webkit.org/show_bug.cgi?id=92487
3444 Reviewed by Adam Barth.
3446 Unknown directive names are currently logged, but we exit the directive
3447 parser early without logging if we hit an invalid character inside a
3448 directive. `script-src: ...`, for example, was ignored without letting
3449 the developer know what happened. This patch changes that behavior,
3450 logging the whole name (in this case `script-src:`) as an unknown
3453 Test: http/tests/security/contentSecurityPolicy/directive-parsing-04.html
3455 * page/ContentSecurityPolicy.cpp:
3456 (WebCore::CSPDirectiveList::parseDirective):