AudioPannerNode should raise exception when distanceModel is set incorrectly
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-07-31  Li Yin  <li.yin@intel.com>
2
3         AudioPannerNode should raise exception when distanceModel is set incorrectly
4         https://bugs.webkit.org/show_bug.cgi?id=90952
5
6         Reviewed by Chris Rogers.
7
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.
12
13         Test: webaudio/audiopannernode-basic.html
14
15         * Modules/webaudio/AudioPannerNode.cpp:
16         (WebCore::AudioPannerNode::setDistanceModel): raise exception
17         (WebCore):
18         * Modules/webaudio/AudioPannerNode.h:
19         (AudioPannerNode):
20         * Modules/webaudio/AudioPannerNode.idl: using unsigned short to replace unsigned long
21
22 2012-07-31  Max Vujovic  <mvujovic@adobe.com>
23
24         [CSS Shaders] CSS parser rejects parameter names that are also CSS keywords
25         https://bugs.webkit.org/show_bug.cgi?id=92537
26
27         Reviewed by Dirk Schulze.
28
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
32
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);
36
37         Test: css3/filters/custom/custom-filter-css-keyword-as-parameter-name.html
38
39         * css/CSSParser.cpp:
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).
42
43 2012-07-31  Pravin D  <pravind.2k4@gmail.com>
44
45         Caret position is wrong when a editable container has word-wrap:normal set
46         https://bugs.webkit.org/show_bug.cgi?id=89649
47
48         Reviewed by Levi Weintraub.
49
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.
53
54         Test: editing/input/editable-container-with-word-wrap-normal.html
55
56         * rendering/RenderText.cpp:
57         (WebCore::RenderText::localCaretRect):
58
59 2012-07-31  Antti Koivisto  <antti@apple.com>
60
61         Crash in FrameLoader::checkLoadComplete with non-browser client app
62         https://bugs.webkit.org/show_bug.cgi?id=92774
63
64         Reviewed by Alexey Proskuryakov..
65
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.
68
69         * css/CSSFontSelector.cpp:
70         (WebCore::CSSFontSelector::beginLoadTimerFired):
71
72 2012-07-31  Hans Wennborg  <hans@chromium.org>
73
74         Speech JavaScript API: Throw exception for start() when already started
75         https://bugs.webkit.org/show_bug.cgi?id=92756
76
77         Reviewed by Adam Barth.
78
79         Make the start() function throw an exception if the SpeechRecognition
80         object was already started.
81
82         Test: fast/speech/scripted/start-exception.html
83
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:
92         (SpeechRecognition):
93         * Modules/speech/SpeechRecognition.idl:
94
95 2012-07-31  Sheriff Bot  <webkit.review.bot@gmail.com>
96
97         Unreviewed, rolling out r124207.
98         http://trac.webkit.org/changeset/124207
99         https://bugs.webkit.org/show_bug.cgi?id=92773
100
101         Patch causes crashes on the 64-bit debug builder (and other
102         builders likely) (Requested by zdobersek on #webkit).
103
104         * GNUmakefile.am:
105         * GNUmakefile.list.am:
106         * platform/text/gtk/TextCheckerEnchant.cpp: Removed.
107         * platform/text/gtk/TextCheckerEnchant.h: Removed.
108
109 2012-07-07  Philippe Normand  <pnormand@igalia.com>
110
111         [GStreamer] Live stream support is weak
112         https://bugs.webkit.org/show_bug.cgi?id=90084
113
114         Reviewed by Martin Robinson.
115
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.
121
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.
149
150 2012-07-17  Antonio Gomes  <agomes@rim.com>
151
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
154         PR #162839
155
156         Reviewed by Rob Buis.
157
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.
163
164         In order to fix that, the patch strips out the Page scale factor from
165         the media controls multiplier.
166
167         Patch also changes many integer-based calculations to be float-based, in
168         order to get the needed precision.
169
170         Internally reviewed by Jacky Jiang.
171
172         * platform/blackberry/RenderThemeBlackBerry.cpp:
173         (WebCore):
174         (WebCore::determineFullScreenMultiplier):
175         (WebCore::RenderThemeBlackBerry::adjustSliderThumbSize):
176         (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
177         (WebCore::RenderThemeBlackBerry::adjustSliderTrackStyle):
178         (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
179         (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
180
181 2012-07-31  Stephen White  <senorblanco@chromium.org>
182
183         Remove the clone() method from FilterOperation (and subclasses).
184         https://bugs.webkit.org/show_bug.cgi?id=92757
185
186         Reviewed by Kentaro Hara.
187
188         Since the move to WebFilterOperation in Chromium, this is now dead
189         code.
190
191         Covered by existing tests in css3/filters.
192
193         * platform/graphics/filters/CustomFilterOperation.h:
194         * platform/graphics/filters/FilterOperation.h:
195
196 2012-07-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>
197
198         Regression(r124135): SVG tests crashing on ports using Cairo
199         https://bugs.webkit.org/show_bug.cgi?id=92752
200
201         Reviewed by Martin Robinson.
202
203         * platform/graphics/cairo/PathCairo.cpp:
204         (WebCore::Path::operator=):
205
206 2012-07-31  Sheriff Bot  <webkit.review.bot@gmail.com>
207
208         Unreviewed, rolling out r124208.
209         http://trac.webkit.org/changeset/124208
210         https://bugs.webkit.org/show_bug.cgi?id=92765
211
212         it broke compilation on mac (Requested by loislo on #webkit).
213
214         * CMakeLists.txt:
215         * GNUmakefile.list.am:
216         * Target.pri:
217         * WebCore.gypi:
218         * WebCore.vcproj/WebCore.vcproj:
219         * WebCore.xcodeproj/project.pbxproj:
220         * inspector/InspectorAllInOne.cpp:
221         * inspector/InspectorMemoryAgent.cpp:
222         (WebCore):
223         * inspector/MemoryInstrumentationImpl.cpp: Removed.
224         * inspector/MemoryInstrumentationImpl.h: Removed.
225
226 2012-07-31  Stephen Chenney  <schenney@chromium.org>
227
228         xmlserializer strips xlink from xlink:html svg image tag
229         https://bugs.webkit.org/show_bug.cgi?id=79586
230
231         Reviewed by Nikolas Zimmermann.
232
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).
237
238         Rob Buis wrote the original test for this patch and did the initial work.
239
240         Tests: fast/dom/XMLSerializer-xml-namespace.html
241                svg/custom/xlink-prefix-in-attributes.html
242
243         * editing/MarkupAccumulator.cpp:
244         (WebCore::attributeIsInSerializedNamespace): Test for an attribute in
245         a specially serialized namespace: xml, xmlns, xlink.
246         (WebCore):
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.
251
252 2012-07-31  Mike Reed  <reed@google.com>
253
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
256
257         Reviewed by Stephen White.
258
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.
261
262         No new tests. existing layouttests exercise this change (9 pending rebaselines associated with this CL).
263
264         * platform/graphics/skia/GradientSkia.cpp:
265         (WebCore::Gradient::platformGradient):
266
267 2012-04-06  Ilya Tikhonovsky  <loislo@chromium.org>
268
269         Web Inspector: extract MemoryInstrumentationImpl into separate files for future reusing in unit tests
270         https://bugs.webkit.org/show_bug.cgi?id=92751
271
272         Reviewed by Yury Semikhatsky.
273
274         * CMakeLists.txt:
275         * GNUmakefile.list.am:
276         * Target.pri:
277         * WebCore.gypi:
278         * WebCore.vcproj/WebCore.vcproj:
279         * inspector/InspectorAllInOne.cpp:
280         * inspector/InspectorMemoryAgent.cpp:
281         (WebCore):
282         * inspector/MemoryInstrumentationImpl.cpp: Added.
283         (WebCore):
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.
291         (WebCore):
292         (MemoryInstrumentationImpl):
293         (WebCore::MemoryInstrumentationImpl::totalTypeSize):
294
295 2012-07-31  Mario Sanchez Prada  <msanchez@igalia.com>
296
297         [GTK] Add a new and reusable enchant-based spellchecker in WebCore
298         https://bugs.webkit.org/show_bug.cgi?id=90269
299
300         Reviewed by Martin Robinson.
301
302         Move enchant specific code down to WebCore, into a new class
303         TextCheckerEnchant, that we can use from WK1 and WK2.
304
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.
318         (WebCore):
319         (TextCheckerEnchant):
320         (WebCore::TextCheckerEnchant::create):
321
322 2012-07-31  Joe Mason  <jmason@rim.com>
323
324         [BlackBerry] Support Negotiate auth
325         https://bugs.webkit.org/show_bug.cgi?id=91871
326
327         Reviewed by George Staikos.
328
329         Add Negotiate to the list of auth schemes allowed in the platform request.
330
331         Add "success" and "requireCredentials" parameters to notifyAuthReceived (which is now called
332         with success = true on successful authentication, as well as on failures).
333
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.)
337
338         When requireCredentials is false, just set the auth type and start a new request using empty
339         credentials.
340
341         RIM PR# 166514
342         Internally reviewed by Jonathan Dong
343
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
349         name.
350         (WebCore::NetworkJob::sendRequestWithCredentials): Use empty credentials if
351         requireCredentials is false.
352         * platform/network/blackberry/NetworkJob.h:
353         (NetworkJob):
354         * platform/network/blackberry/NetworkManager.cpp:
355         (WebCore::NetworkManager::startJob): Add Negotiate to the auth scheme switch.
356
357 2012-07-31  Alexei Filippov  <alexeif@chromium.org>
358
359         Web Inspector: take into account the whole security origin instead of just host
360         https://bugs.webkit.org/show_bug.cgi?id=92740
361
362         Reviewed by Pavel Feldman.
363
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).
370
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):
379
380 2012-07-31  Keishi Hattori  <keishi@webkit.org>
381
382         Slider ticks are drawn at wrong positions
383         https://bugs.webkit.org/show_bug.cgi?id=92720
384
385         Reviewed by Kent Tamura.
386
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.
389
390         No new tests. Covered in input-appearance-range-with-datalist.html.
391
392         * rendering/RenderTheme.cpp:
393         (WebCore::RenderTheme::paintSliderTicks):
394
395 2012-07-31  Shinya Kawanaka  <shinyak@chromium.org>
396
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
399
400         Reviewed by Hajime Morita.
401
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.
404
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'.
407
408         This change enables us to remove a unnecessary InvalidationType flag from the code. We should call
409         setValidityUndetermined() instead of using InvalidateAndForceReattach.
410
411         Test: fast/dom/shadow/invalidate-distribution.html
412
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:
420         (ElementShadow):
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().
427
428 2012-07-31  Tommy Widenflycht  <tommyw@google.com>
429
430         Introduce a minimal RTCPeerConnection together with Dictionary changes
431         https://bugs.webkit.org/show_bug.cgi?id=92380
432
433         Reviewed by Kentaro Hara.
434
435         This patch introduces a shell RTCPeerConnection together with neccecary changes to
436         Dictionary.
437
438         The W3C specification can be found here:
439         http://dev.w3.org/2011/webrtc/editor/webrtc.html#rtcpeerconnection
440
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.
444
445         Test: fast/mediastream/RTCPeerConnection.html
446
447         * CMakeLists.txt:
448         * GNUmakefile.list.am:
449         * Modules/mediastream/DOMWindowMediaStream.idl:
450         * Modules/mediastream/RTCPeerConnection.cpp: Added.
451         (WebCore):
452         (RTCIceServer):
453         (WebCore::RTCIceServer::create):
454         (WebCore::RTCIceServer::~RTCIceServer):
455         (WebCore::RTCIceServer::uri):
456         (WebCore::RTCIceServer::credential):
457         (WebCore::RTCIceServer::RTCIceServer):
458         (RTCConfiguration):
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.
475         (WebCore):
476         (RTCPeerConnection):
477         (WebCore::RTCPeerConnection::refEventTarget):
478         (WebCore::RTCPeerConnection::derefEventTarget):
479         * Modules/mediastream/RTCPeerConnection.idl: Added.
480         * Target.pri:
481         * UseJSC.cmake:
482         * WebCore.gypi:
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.
488         (WebCore):
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.
495         (WebCore):
496         (ArrayValue):
497         * bindings/js/JSBindingsAllInOne.cpp:
498         * bindings/js/JSDictionary.cpp:
499         (WebCore::JSDictionary::convertValue):
500         (WebCore):
501         * bindings/js/JSDictionary.h:
502         (WebCore):
503         * bindings/v8/ArrayValue.cpp: Added.
504         (WebCore):
505         (WebCore::ArrayValue::operator=):
506         (WebCore::ArrayValue::isUndefinedOrNull):
507         (WebCore::ArrayValue::length):
508         (WebCore::ArrayValue::get):
509         * bindings/v8/ArrayValue.h: Added.
510         (WebCore):
511         (ArrayValue):
512         (WebCore::ArrayValue::ArrayValue):
513         (WebCore::ArrayValue::~ArrayValue):
514         * bindings/v8/Dictionary.cpp:
515         (WebCore::Dictionary::get):
516         (WebCore):
517         * bindings/v8/Dictionary.h:
518         (WebCore):
519         (Dictionary):
520         * dom/EventTargetFactory.in:
521
522 2012-07-31  Raul Hudea  <rhudea@adobe.com>
523
524         Inspector crashes when trying to inspect a page with CSS region styling
525         https://bugs.webkit.org/show_bug.cgi?id=91503
526
527         Reviewed by Alexander Pavlov.
528
529         Fix by making sure a CSSRuleSourceData is always created when parsing @-webkit-region rules.
530
531         Test: inspector/styles/region-style-crash.html
532
533         * css/CSSGrammar.y: Made ruleset called explicitly markRuleBodyStart instead of depending on updateLastSelectorLineAndPosition to call it.
534         * css/CSSParser.cpp:
535         (WebCore::CSSParser::updateLastSelectorLineAndPosition): markRuleBodyStart should be called via at_rule_body_start. 
536         * css/CSSPropertySourceData.h:
537
538 2012-07-31  Sheriff Bot  <webkit.review.bot@gmail.com>
539
540         Unreviewed, rolling out r124179.
541         http://trac.webkit.org/changeset/124179
542         https://bugs.webkit.org/show_bug.cgi?id=92730
543
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).
547
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:
559         (IDBLevelDBCoding):
560
561 2012-07-31  Danilo Cesar Lemes de Paula  <danilo.cesar@collabora.co.uk>
562
563         add Farstream flags/deps to WebKit, for WebRTC
564         https://bugs.webkit.org/show_bug.cgi?id=87524
565
566         Reviewed by Philippe Normand.
567
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.
570
571         No new features or code changes were added, so new tests aren't necessary.
572
573         * GNUmakefile.am:
574
575 2012-07-31  Zan Dobersek  <zandobersek@gmail.com>
576
577         Unreviewed crash fix after r124135.
578
579         * platform/graphics/cairo/PathCairo.cpp:
580         (WebCore::Path::Path): Ensure the Cairo path when acquiring its context,
581         crashes ensue otherwise.
582
583 2012-07-31  Yoshifumi Inoue  <yosin@chromium.org>
584
585         Change Element::isReadOnlyFormControl to Element::shouldMatchReadOnlySelector/shouldMatchReadWriteSelector or HTMLFormControlElement::readOnly
586         https://bugs.webkit.org/show_bug.cgi?id=92602
587
588         Reviewed by Kent Tamura.
589
590         This patch replaces Element::isReadOnlyFormControl() by
591         Element::shouldMatchReadOnlySelector/shouldMatchReadOnlySelector or
592         HTMLFormControlElement::readOnly() to make intention of functions
593         self descriptive.
594
595         No new tests. This patch doesn't change behavior.
596
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.
599         * dom/Element.cpp:
600         (WebCore::Element::shouldMatchReadOnlySelector): Added for default implementation.
601         (WebCore::Element::shouldMatchReadWriteSelector): for default implementation.
602         * dom/Element.h:
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().
626
627 2012-07-31  Xingnan Wang  <xingnan.wang@intel.com>
628
629         IndexedDB: Size the Vector in encodeInt/encodeVarInt/encodeString
630         https://bugs.webkit.org/show_bug.cgi?id=91813
631
632         Reviewed by Kentaro Hara.
633
634         To avoid memory re-allocation in Vector, init the capability or size of Vector in encodeInt(), encodeVarInt(),
635         encodeBool(), encodeIDBKey() etc.
636
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.
639
640         * Modules/indexeddb/IDBLevelDBCoding.cpp:
641         (WebCore::IDBLevelDBCoding::encodeInt):
642         (WebCore::IDBLevelDBCoding::encodeVarInt):
643         (WebCore::IDBLevelDBCoding::encodeString):
644
645 2012-07-30  Huang Dongsung  <luxtella@company100.net>
646
647         [Texmap] Remove the backing store after 'style.visibility' for an element sets 'hidden'.
648         https://bugs.webkit.org/show_bug.cgi?id=92492
649
650         Reviewed by Noam Rosenthal.
651
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.
658
659         No new tests - no new testable functionality.
660
661         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
662         (WebCore::GraphicsLayerTextureMapper::setContentsVisible):
663         (WebCore):
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:
672         (State):
673         (WebCore::TextureMapperLayer::State::State):
674
675 2012-07-30  Keishi Hattori  <keishi@webkit.org>
676
677         Implement datalist UI for input type color for Chromium
678         https://bugs.webkit.org/show_bug.cgi?id=92075
679
680         Reviewed by Kent Tamura.
681
682         Test: platform/chromium/fast/forms/color/color-suggestion-picker-appearance.html
683
684         * rendering/RenderThemeChromiumCommon.cpp:
685         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Added color to types supporting datalist.
686
687 2012-07-30  Sheriff Bot  <webkit.review.bot@gmail.com>
688
689         Unreviewed, rolling out r124171.
690         http://trac.webkit.org/changeset/124171
691         https://bugs.webkit.org/show_bug.cgi?id=92712
692
693         Start failing fast/css/square-button-appearance.html
694         (Requested by yosin on #webkit).
695
696         * css/SelectorChecker.cpp:
697         (WebCore::SelectorChecker::checkOneSelector):
698         * dom/Element.cpp:
699         * dom/Element.h:
700         (Element):
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):
719
720 2012-07-30  Yoshifumi Inoue  <yosin@chromium.org>
721
722         [CSS] Change Element::isReadOnlyFormControl to shouldMatchReadWriteSelector or HTMLTextFormControlElement::readOnly
723         https://bugs.webkit.org/show_bug.cgi?id=92602
724
725         Reviewed by Kent Tamura.
726
727         This patch renames Element::isReadOnlyFormControl() to Element::shouldMatchReadWriteSelector()
728         or HTMLTextFormControlElement::readOnly() to make intention of
729         shouldMatchReadWriteSelector(was isReadOnlyFormControl) self descriptive.
730
731         No new tests. This patch doesn't change behavior.
732
733         * css/SelectorChecker.cpp:
734         (WebCore::SelectorChecker::checkOneSelector): Replaced isReadOnlyFormControl() by shouldMatchReadWriteSelector().
735         * dom/Element.cpp:
736         (WebCore::Element::shouldMatchReadWriteSelector): Added default implementation.
737         * dom/Element.h:
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().
754
755 2012-07-30  Julien Chaffraix  <jchaffraix@webkit.org>
756
757         Remove overflow: scroll handling in block flow layout methods
758         https://bugs.webkit.org/show_bug.cgi?id=92689
759
760         Reviewed by Simon Fraser.
761
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.
765
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.
768
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
774         - For the flexbox:
775             css3/flexbox/preferred-widths-orthogonal.html
776             css3/flexbox/preferred-widths.html
777
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.
787
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.
792
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.
798
799         (WebCore::overflowRequiresAScrollbar):
800         (WebCore::overflowDefinesAutomaticScrollbar):
801         Split the logic in those 2 functions.
802
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.
806
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.
810
811 2012-07-30  Vivek Galatage  <vivekgalatage@gmail.com>
812
813         fillWithEmptyClients method should also initialize chromeClient with EmptyChromeClient
814         https://bugs.webkit.org/show_bug.cgi?id=92703
815
816         Reviewed by Kent Tamura.
817
818         fillWithEmptyClients should also intialize PageClients.chromeClient with EmptyChromeClient 
819         as its required for creating a Empty page and to minimize the exported symbols.
820
821         No new tests as no change in functionality.
822
823         * loader/EmptyClients.cpp:
824         (WebCore::fillWithEmptyClients):
825
826 2012-07-30  Adrienne Walker  <enne@google.com>
827
828         [chromium] Wrap ScrollbarLayerChromium in WebScrollbarLayer
829         https://bugs.webkit.org/show_bug.cgi?id=91032
830
831         Reviewed by James Robinson.
832
833         Modify ScrollingCoordinatorChromium to operate on WebScrollbarLayer
834         instead of ScrollbarLayerChromium. This removes the dependency on
835         ScrollbarLayerChromium.
836
837         No change in functionality, so no new tests.
838
839         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
840         (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
841         (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
842         (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
843         (ScrollingCoordinatorPrivate):
844         (WebCore::createScrollbarLayer):
845
846 2012-07-30  Ryosuke Niwa  <rniwa@webkit.org>
847
848         Another Qt build fix attempt after r124098.
849         "interface" is a keyword. Don't use it. 
850
851         * dom/GestureEvent.cpp:
852         (WebCore::GestureEvent::interfaceName):
853
854 2012-07-30  Elliott Sprehn  <esprehn@gmail.com>
855
856         Make QuotesData use a Vector of pairs
857         https://bugs.webkit.org/show_bug.cgi?id=92448
858
859         Reviewed by Julien Chaffraix.
860
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.
866
867         Test: fast/css-generated-content/close-quote-negative-depth.html
868
869         * css/StyleResolver.cpp:
870         (WebCore::StyleResolver::collectMatchingRulesForList): Create pairs and use the new QuotesData API.
871         * rendering/RenderQuote.cpp:
872         (WebCore):
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.
880         (WebCore):
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):
887         (QuotesData):
888         (WebCore::QuotesData::QuotesData):
889         * rendering/style/RenderStyle.cpp:
890         (WebCore::RenderStyle::setQuotes):
891         * rendering/style/StyleRareInheritedData.cpp:
892         (WebCore::StyleRareInheritedData::operator==):
893
894 2012-07-30  MORITA Hajime  <morrita@google.com>
895
896         Node::replaceChild() can create bad DOM topology with MutationEvent
897         https://bugs.webkit.org/show_bug.cgi?id=92619
898
899         Reviewed by Ryosuke Niwa.
900
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().
906
907         This change adds a guard for checking the invariant using
908         checkReplaceChild() between removeChild() and insertBeforeCommon().
909
910         Test: fast/events/mutation-during-replace-child.html
911
912         * dom/ContainerNode.cpp:
913         (WebCore::ContainerNode::replaceChild): Added a guard.
914
915 2012-07-30  Ryosuke Niwa  <rniwa@webkit.org>
916
917         Qt Windows build fix attempt after r124098.
918
919         * dom/GestureEvent.cpp:
920
921 2012-07-30  Wei James  <james.wei@intel.com>
922
923         [Chromium] Enable web audio IPP for x86 chromium android
924         https://bugs.webkit.org/show_bug.cgi?id=91973
925
926         Reviewed by Tony Chang.
927
928         Include the IPP libraries at link-time for Android builds when
929         compiling the Web Audio API with IPP support.
930
931         * WebCore.gyp/WebCore.gyp:
932
933 2012-07-30  Yoshifumi Inoue  <yosin@chromium.org>
934
935         [Forms] Get rid of Element::isReadOnlyFormControl other than CSS related
936         https://bugs.webkit.org/show_bug.cgi?id=92612
937
938         Reviewed by Kent Tamura.
939
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.
943
944         No new tests. This patch doesn't change behavior.
945
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().
958
959 2012-07-30  Eric Seidel  <eric@webkit.org>
960
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
963
964         Reviewed by Simon Fraser.
965
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.
969
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.
977
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.
980
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%!) :)
986
987         * platform/graphics/Path.h:
988         (Path):
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):
1002         (WebCore):
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):
1032         (WebCore):
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:
1056         (WebCore):
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):
1072         (WebCore):
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):
1108         (WebCore):
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):
1121
1122 2012-07-30  Dominik Röttsches  <dominik.rottsches@intel.com>
1123
1124         Avoid Assertion Failure in HarfBuzzRun::characterIndexForXPosition
1125         https://bugs.webkit.org/show_bug.cgi?id=92376
1126
1127         Reviewed by Tony Chang.
1128
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.
1136
1137         Manual test ManualTests/harfbuzz-mouse-selection-crash.html added
1138         which reliably reproduces the assertion failure before this change.
1139
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:
1144         (HarfBuzzRun):
1145
1146 2012-06-29  James Robinson  <jamesr@chromium.org>
1147
1148         [chromium] Remove WebTransformationMatrix::mapPoint overrides
1149         https://bugs.webkit.org/show_bug.cgi?id=90329
1150
1151         Reviewed by Adrienne Walker.
1152
1153         Add more functionality for mapping points to CCMathUtil and use it in CCLayerSorter / drawTileQuad. These
1154         mappings should never clip.
1155
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):
1164         (WebCore):
1165         * platform/graphics/chromium/cc/CCMathUtil.h:
1166         (WebCore::HomogeneousCoordinate::cartesianPoint3d):
1167         (HomogeneousCoordinate):
1168         (CCMathUtil):
1169
1170 2012-07-30  Anders Carlsson  <andersca@apple.com>
1171
1172         Crash in logging code if MIME type is null
1173         https://bugs.webkit.org/show_bug.cgi?id=92683
1174         <rdar://problem/11985295>
1175
1176         Reviewed by Dan Bernstein.
1177
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.
1180
1181         * loader/SubframeLoader.cpp:
1182         (WebCore::logPluginRequest):
1183
1184 2012-07-30  Alexis Menard  <alexis.menard@openbossa.org>
1185
1186         Build fix with newer bison 2.6.
1187         https://bugs.webkit.org/show_bug.cgi?id=92264
1188
1189         Reviewed by Adam Barth.
1190
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.
1197
1198         No new tests : build fix and the patch should not trigger any regressions
1199
1200         * css/CSSGrammar.y:
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.
1208
1209 2012-07-30  Sadrul Habib Chowdhury  <sadrul@chromium.org>
1210
1211         Propagate gesture events to plugins.
1212         https://bugs.webkit.org/show_bug.cgi?id=92281
1213
1214         Reviewed by Adam Barth.
1215
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.
1219
1220         Test: platform/chromium/plugins/gesture-events.html
1221
1222         * CMakeLists.txt:
1223         * GNUmakefile.list.am:
1224         * Target.pri:
1225         * WebCore.gypi:
1226         * WebCore.xcodeproj/project.pbxproj:
1227         * dom/EventNames.h:
1228         (WebCore):
1229         (WebCore::EventNames::isGestureEventType):
1230         (EventNames):
1231         * dom/GestureEvent.cpp: Added.
1232         (WebCore):
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.
1241         (WebCore):
1242         (GestureEvent):
1243         (WebCore::GestureEvent::~GestureEvent):
1244         (WebCore::GestureEvent::deltaX):
1245         (WebCore::GestureEvent::deltaY):
1246         (WebCore::GestureEvent::GestureEvent):
1247         (GestureEventDispatchMediator):
1248         (WebCore::GestureEventDispatchMediator::create):
1249         * dom/Node.cpp:
1250         (WebCore):
1251         (WebCore::Node::dispatchGestureEvent):
1252         * dom/Node.h:
1253         (WebCore):
1254         (Node):
1255         * page/EventHandler.cpp:
1256         (WebCore::EventHandler::clear):
1257         (WebCore::EventHandler::handleGestureEvent):
1258         * page/EventHandler.h:
1259
1260 2012-07-30  John Bates  <jbates@google.com>
1261
1262         Plumb vsync-enabled flag up to compositor thread and support disable-vsync
1263         https://bugs.webkit.org/show_bug.cgi?id=92323
1264
1265         Reviewed by James Robinson.
1266
1267         * platform/graphics/chromium/cc/CCFrameRateController.cpp:
1268         (WebCore::CCFrameRateController::CCFrameRateController):
1269         (WebCore::CCFrameRateController::disableTimeSourceThrottling):
1270         (WebCore):
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:
1277         (WebCore):
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:
1286         (CCThreadProxy):
1287
1288 2012-07-30  James Robinson  <jamesr@chromium.org>
1289
1290         [chromium] Add miscellaneous missing includes and OVERRIDE declarations in compositor code
1291         https://bugs.webkit.org/show_bug.cgi?id=92680
1292
1293         Reviewed by Adrienne Walker.
1294
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:
1302         (WebCore):
1303
1304 2012-07-30  Adrienne Walker  <enne@google.com>
1305
1306         [chromium] Remove dependency on ScrollbarTheme from the compositor
1307         https://bugs.webkit.org/show_bug.cgi?id=90528
1308
1309         Reviewed by James Robinson.
1310
1311         Tested by existing layout tests.
1312
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.
1317
1318         CCScrollbarLayerImpl::CCScrollbar now implements the WebScrollbar API
1319         instead of the ScrollbarThemeClient API.
1320
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
1328         resolved.
1329
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):
1372         (CCScrollbar):
1373
1374 2012-07-30  Andreas Kling  <kling@webkit.org>
1375
1376         REGRESSION(r123636): Heap-use-after-free in StyleResolver::collectMatchingRules.
1377         <http://webkit.org/b/92430>
1378
1379         Reviewed by Antti Koivisto.
1380
1381         Don't hold on to a reference to StyledElement::classNames() as that may become
1382         invalid after mutating the element's attribute data.
1383
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.
1387
1388         Covered by valgrind on existing tests.
1389
1390         * css/StyleResolver.cpp:
1391         (WebCore::StyleResolver::collectMatchingRules):
1392
1393 2012-07-30  James Robinson  <jamesr@chromium.org>
1394
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
1397
1398         Reviewed by David Levin.
1399
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.
1402
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.
1405
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:
1420         (CCThreadTask1):
1421         (WebCore::CCThreadTask1::create):
1422         (WebCore::CCThreadTask1::CCThreadTask1):
1423         (CCThreadTask2):
1424         (WebCore::CCThreadTask2::create):
1425         (WebCore::CCThreadTask2::CCThreadTask2):
1426         (CCThreadTask3):
1427         (WebCore::CCThreadTask3::create):
1428         (WebCore::CCThreadTask3::CCThreadTask3):
1429         (CCThreadTask4):
1430         (WebCore::CCThreadTask4::create):
1431         (WebCore::CCThreadTask4::CCThreadTask4):
1432         (CCThreadTask5):
1433         (WebCore::CCThreadTask5::create):
1434         (WebCore::CCThreadTask5::CCThreadTask5):
1435         (WebCore::createCCThreadTask):
1436
1437 2012-07-30  Paul Irish  <paul.irish@gmail.com>
1438
1439         Web Inspector: Rename Databases to Web SQL
1440         https://bugs.webkit.org/show_bug.cgi?id=92646
1441
1442         Reviewed by Pavel Feldman.
1443
1444         Renamed Databases to Web SQL. Drive-by fix for EmptyView
1445         selection.
1446
1447         * English.lproj/localizedStrings.js:
1448         * inspector/front-end/EmptyView.js:
1449         * inspector/front-end/ResourcesPanel.js:
1450
1451 2012-07-30  Tony Chang  <tony@chromium.org>
1452
1453         new flexbox should ignore float set on flexitems
1454         https://bugs.webkit.org/show_bug.cgi?id=70792
1455
1456         Reviewed by Ojan Vafai.
1457
1458         Force flex items to not float.
1459
1460         Test: css3/flexbox/floated-flexitem.html
1461
1462         * css/StyleResolver.cpp:
1463         (WebCore::StyleResolver::adjustRenderStyle): Force NoFloat on flex items.
1464
1465 2012-07-30  Adrienne Walker  <enne@google.com>
1466
1467         [chromium] Turn back on ScrollbarLayerChromium for Windows
1468         https://bugs.webkit.org/show_bug.cgi?id=92409
1469
1470         Reviewed by James Robinson.
1471
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.
1475
1476         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
1477         (WebCore::createScrollbarLayer):
1478
1479 2012-07-30  Sheriff Bot  <webkit.review.bot@gmail.com>
1480
1481         Unreviewed, rolling out r124025.
1482         http://trac.webkit.org/changeset/124025
1483         https://bugs.webkit.org/show_bug.cgi?id=92658
1484
1485         Causes color-suggestion-picker-appearance layout test to time
1486         out on all Chromium platforms (Requested by tomhudson_ on
1487         #webkit).
1488
1489         * rendering/RenderThemeChromiumCommon.cpp:
1490         (WebCore::RenderThemeChromiumCommon::supportsDataListUI):
1491
1492 2012-07-30  Sheriff Bot  <webkit.review.bot@gmail.com>
1493
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
1498
1499         This patch is causing assertion failures on the debug bot
1500         (also rolling out a dependent patch) (Requested by mrobinson
1501         on #webkit).
1502
1503         * GNUmakefile.am:
1504         * GNUmakefile.list.am:
1505         * platform/text/gtk/TextCheckerEnchant.cpp: Removed.
1506         * platform/text/gtk/TextCheckerEnchant.h: Removed.
1507
1508 2012-07-30  Julien Chaffraix  <jchaffraix@webkit.org>
1509
1510         ASSERTION FAILED: !rect.isEmpty()  : void WebCore::GraphicsContext::drawRect(const WebCore::IntRect &)
1511         https://bugs.webkit.org/show_bug.cgi?id=92187
1512
1513         Reviewed by Simon Fraser.
1514
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.
1519
1520         Tests: fast/borders/0px-borders-no-line-height.html
1521                fast/borders/double-1px-border-assert.html
1522
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).
1527
1528 2012-07-26  Stephen White  <senorblanco@chromium.org>
1529
1530         [chromium] Refactor the computation of resampled bitmap size in
1531         drawImage and drawPattern.
1532         https://bugs.webkit.org/show_bug.cgi?id=92408
1533
1534         Reviewed by Adrienne Walker.
1535
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.
1540
1541         Covered by existing tests, e.g., fast/backgrounds/size/*.
1542
1543         * platform/graphics/skia/ImageSkia.cpp:
1544         (WebCore):
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.
1550
1551 2012-07-30  Vineet Chaudhary  <rgf748@motorola.com>
1552
1553         https://bugs.webkit.org/show_bug.cgi?id=92642
1554         [Bindings]Remove custom JS/V8 bindings for WebSocket::close() using [Clamp]
1555
1556         Reviewed by Kentaro Hara.
1557
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
1560
1561         No new tests. There should be no behavioural changes 
1562         Existing tests under http/websocket/tests/hybi/ should cover this.
1563
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().
1568         (WebCore):
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().
1578         (WebCore):
1579
1580 2012-07-29  Vsevolod Vlasov  <vsevik@chromium.org>
1581
1582         Web Inspector: Resource agent's reference to cached resources should be weak.
1583         https://bugs.webkit.org/show_bug.cgi?id=92108
1584
1585         Reviewed by Pavel Feldman.
1586
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.
1591
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
1594
1595         * WebCore.exp.in:
1596         * inspector/InspectorController.cpp:
1597         (WebCore::InspectorController::InspectorController):
1598         (WebCore::InspectorController::inspectedPageDestroyed):
1599         * inspector/InspectorInstrumentation.cpp:
1600         (WebCore):
1601         (WebCore::InspectorInstrumentation::willDestroyCachedResourceImpl):
1602         (WebCore::InspectorInstrumentation::registerInstrumentingAgents):
1603         (WebCore::InspectorInstrumentation::unregisterInstrumentingAgents):
1604         * inspector/InspectorInstrumentation.h:
1605         (InspectorInstrumentation):
1606         (WebCore::InspectorInstrumentation::willDestroyCachedResource):
1607         (WebCore):
1608         * inspector/InspectorResourceAgent.cpp:
1609         (WebCore::InspectorResourceAgent::didReceiveData):
1610         (WebCore::InspectorResourceAgent::willDestroyCachedResource):
1611         (WebCore):
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):
1620         (WebCore):
1621         * inspector/NetworkResourcesData.h:
1622         (ResourceData):
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):
1630         (WebCore):
1631         * loader/cache/CachedResource.h:
1632         (CachedResource):
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):
1644         (WebCore):
1645         * testing/Internals.h:
1646         (Internals):
1647         * testing/Internals.idl:
1648
1649 2012-07-30  Shinya Kawanaka  <shinyak@chromium.org>
1650
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
1653
1654         Reviewed by Hajime Morita.
1655
1656         Prohibit having AuthorShadowDOM of input elemnet unless a flag in RuntimeEnabledFeatures is not enabled.
1657         The flag can be enabled in Internals.
1658
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.
1663
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
1667
1668         * bindings/generic/RuntimeEnabledFeatures.cpp:
1669         (WebCore):
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):
1679         (WebCore):
1680         * html/HTMLTextAreaElement.h:
1681         (WebCore::isHTMLTextAreaElement):
1682         (WebCore):
1683         * testing/Internals.cpp:
1684         (WebCore::Internals::setAuthorShadowDOMForAnyElementEnabled):
1685         (WebCore):
1686         * testing/Internals.h:
1687         (Internals):
1688         * testing/Internals.idl:
1689
1690 2012-07-30  Pavel Feldman  <pfeldman@chromium.org>
1691
1692         Web Inspector: support --line-numbers mapping for SASS
1693         https://bugs.webkit.org/show_bug.cgi?id=92400
1694
1695         Reviewed by Vsevolod Vlasov.
1696
1697         There is --debug-info and --line-numbers ways of referencing the source scss file, adding support for --line-numbers here.
1698
1699         * inspector/front-end/SASSSourceMapping.js:
1700         (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
1701         (WebInspector.SASSSourceMapping.prototype._resourceAdded):
1702         (_bindUISourceCode):
1703
1704 2012-07-30  Keishi Hattori  <keishi@webkit.org>
1705
1706         Implement datalist UI for input type color for Chromium
1707         https://bugs.webkit.org/show_bug.cgi?id=92075
1708
1709         Reviewed by Kent Tamura.
1710
1711         Test: platform/chromium/fast/forms/color/color-suggestion-picker-appearance.html
1712
1713         * rendering/RenderThemeChromiumCommon.cpp:
1714         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Added color to types supporting datalist.
1715
1716 2012-07-30  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1717
1718         Wheel events on a page with frames are not handled in fixed layout
1719         https://bugs.webkit.org/show_bug.cgi?id=90550
1720
1721         Reviewed by Antonio Gomes.
1722
1723         Based on patch by Andras Becsi.
1724
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.
1730
1731         * platform/ScrollView.cpp:
1732         (WebCore::ScrollView::updateScrollbars):
1733
1734 2012-07-30  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1735
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
1738
1739         Reviewed by Antonio Gomes.
1740
1741         This patch adds the willRespondToMouseClickEvents and willRespondToMouseMoveEvents
1742         functions, named after similar functions in the iOS fork of WebKit.
1743
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.
1747
1748         Test: touchadjustment/disabled-formelements.html
1749
1750         * dom/Node.cpp:
1751         (WebCore::Node::willRespondToMouseMoveEvents):
1752         (WebCore::Node::willRespondToMouseClickEvents):
1753         * dom/Node.h:
1754         (Node):
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:
1767         (HTMLInputElement):
1768         * html/HTMLLabelElement.cpp:
1769         (WebCore::HTMLLabelElement::willRespondToMouseClickEvents):
1770         * html/HTMLLabelElement.h:
1771         (HTMLLabelElement):
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):
1813
1814 2012-07-30  Vsevolod Vlasov  <vsevik@chromium.org>
1815
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
1818
1819         Reviewed by Yury Semikhatsky.
1820
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.
1823
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:
1835         (ResourceData):
1836         (NetworkResourcesData):
1837
1838 2012-07-30  Hayato Ito  <hayato@chromium.org>
1839
1840         Remove an useless member variable, m_shouldPreventDispatch, from EventDispatcher.
1841         https://bugs.webkit.org/show_bug.cgi?id=92625
1842
1843         Reviewed by Hajime Morita.
1844
1845         EventDispatcher::m_shouldPreventDispatch does not have any effects. We can remove that.
1846
1847         No new tests, no behavior change.
1848
1849         * dom/EventDispatcher.cpp:
1850         (WebCore::EventDispatcher::EventDispatcher):
1851         (WebCore::EventDispatcher::dispatchEvent):
1852         * dom/EventDispatcher.h:
1853         (EventDispatcher):
1854
1855 2012-07-30  Hayato Ito  <hayato@chromium.org>
1856
1857         Remove an useless member variable, m_shouldPreventDispatch, from EventDispatcher.
1858         https://bugs.webkit.org/show_bug.cgi?id=92625
1859
1860         Reviewed by Hajime Morita.
1861
1862         EventDispatcher::m_shouldPreventDispatch does not have any effects. We can remove that.
1863
1864         No new tests, no behavior change.
1865
1866         * dom/EventDispatcher.cpp:
1867         (WebCore::EventDispatcher::EventDispatcher):
1868         (WebCore::EventDispatcher::dispatchEvent):
1869         * dom/EventDispatcher.h:
1870         (EventDispatcher):
1871
1872 2012-07-26  Yury Semikhatsky  <yurys@chromium.org>
1873
1874         Web Inspector: make MemoryInstrumentation methods private
1875         https://bugs.webkit.org/show_bug.cgi?id=92379
1876
1877         Reviewed by Vsevolod Vlasov.
1878
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.
1885
1886         * CMakeLists.txt:
1887         * GNUmakefile.list.am:
1888         * WebCore.gypi:
1889         * WebCore.vcproj/WebCore.vcproj:
1890         * WebCore.xcodeproj/project.pbxproj:
1891         * bindings/v8/ScriptProfiler.cpp:
1892         (WebCore::ScriptProfiler::collectBindingMemoryInfo):
1893         * dom/MemoryInstrumentation.cpp: Added.
1894         (WebCore):
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):
1909         (WebCore):
1910         (WebCore::MemoryInstrumentation::addObjectImpl):
1911         (WebCore::MemoryInstrumentation::addInstrumentedCollection):
1912         (WebCore::MemoryInstrumentation::calculateContainerSize):
1913         * inspector/InspectorMemoryAgent.cpp:
1914         (WebCore):
1915
1916 2012-07-30  Alexander Pavlov  <apavlov@chromium.org>
1917
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
1920
1921         Reviewed by Vsevolod Vlasov.
1922
1923         Added the "fill" and "stroke" properties to the list of color-aware properties.
1924
1925         * inspector/front-end/CSSKeywordCompletions.js:
1926
1927 2012-07-30  Sheriff Bot  <webkit.review.bot@gmail.com>
1928
1929         Unreviewed, rolling out r124000.
1930         http://trac.webkit.org/changeset/124000
1931         https://bugs.webkit.org/show_bug.cgi?id=92632
1932
1933         seems to have broken chromium Range_InstanceSizeUnknown unit
1934         test across many platforms (Requested by tomhudson on
1935         #webkit).
1936
1937         * WebCore.exp.in:
1938         * inspector/InspectorController.cpp:
1939         (WebCore::InspectorController::InspectorController):
1940         (WebCore::InspectorController::inspectedPageDestroyed):
1941         * inspector/InspectorInstrumentation.cpp:
1942         (WebCore):
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:
1955         (ResourceData):
1956         (WebCore::NetworkResourcesData::ResourceData::cachedResource):
1957         (NetworkResourcesData):
1958         * loader/cache/CachedResource.cpp:
1959         (WebCore::CachedResource::~CachedResource):
1960         (WebCore::CachedResource::removeClient):
1961         (WebCore::CachedResource::deleteIfPossible):
1962         (WebCore):
1963         * loader/cache/CachedResource.h:
1964         (CachedResource):
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:
1975         (Internals):
1976         * testing/Internals.idl:
1977
1978 2012-07-30  Hayato Ito  <hayato@chromium.org>
1979
1980         Remove an unused member variable, m_originalTarget, from EventDispatcher.
1981         https://bugs.webkit.org/show_bug.cgi?id=92614
1982
1983         Reviewed by Andreas Kling.
1984
1985         No one uses EventDispatcher::m_originalTarget.
1986
1987         No new tests, no behavior change.
1988
1989         * dom/EventDispatcher.h:
1990         (EventDispatcher):
1991
1992 2012-07-27  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1993
1994         [Qt] Fix issues remaining with fixed positioned layers
1995         https://bugs.webkit.org/show_bug.cgi?id=92528
1996
1997         Reviewed by Noam Rosenthal.
1998
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):
2007
2008 2012-07-30  Patrick Gansterer  <paroga@webkit.org>
2009
2010         Replace UnicodeWinCE with UnicodeWchar
2011         https://bugs.webkit.org/show_bug.cgi?id=92539
2012
2013         Reviewed by Ryosuke Niwa.
2014
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.
2019
2020         * platform/text/TextEncoding.cpp:
2021         (WebCore::TextEncoding::encode):
2022         * platform/text/TextEncodingRegistry.cpp:
2023         (WebCore::extendTextCodecMaps):
2024
2025 2012-07-30  Hayato Ito  <hayato@chromium.org>
2026
2027         Remove unnecessary code which set event's target from EventDispatcher::dispatchEvent.
2028         https://bugs.webkit.org/show_bug.cgi?id=92613
2029
2030         Reviewed by Hajime Morita.
2031
2032         EventContext::handleLocalEvents does all required jobs so we don't
2033         need to set target in EventDispacher::dispatchEvent() for TARGET phase.
2034
2035         No new tests, no behavior change.
2036
2037         * dom/EventDispatcher.cpp:
2038         (WebCore::EventDispatcher::dispatchEvent):
2039
2040 2012-07-30  Sheriff Bot  <webkit.review.bot@gmail.com>
2041
2042         Unreviewed, rolling out r124004.
2043         http://trac.webkit.org/changeset/124004
2044         https://bugs.webkit.org/show_bug.cgi?id=92622
2045
2046         Broke Android build (Requested by keishi on #webkit).
2047
2048         * rendering/RenderThemeChromiumCommon.cpp:
2049         (WebCore::RenderThemeChromiumCommon::supportsDataListUI):
2050
2051 2012-07-30  Pavel Feldman  <pfeldman@chromium.org>
2052
2053         Web Inspector: element tag disappears after editing
2054         https://bugs.webkit.org/show_bug.cgi?id=92385
2055
2056         Reviewed by Vsevolod Vlasov.
2057
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.
2061
2062         * inspector/front-end/ElementsTreeOutline.js:
2063         (WebInspector.ElementsTreeElement.prototype.updateSelection):
2064
2065 2012-07-26  Yury Semikhatsky  <yurys@chromium.org>
2066
2067         Web Inspector: move StringImpl size calculation to StringImpl
2068         https://bugs.webkit.org/show_bug.cgi?id=92359
2069
2070         Reviewed by Pavel Feldman.
2071
2072         Moved stringSize(StringImpl*) implementation from InspectorMemoryAgent to
2073         StringImpl::sizeInBytes();
2074
2075         * inspector/InspectorMemoryAgent.cpp:
2076         (WebCore):
2077
2078 2012-07-30  Pavel Feldman  <pfeldman@chromium.org>
2079
2080         Web Inspector: workers inspector is broken in the remote debugging mode
2081         https://bugs.webkit.org/show_bug.cgi?id=92540
2082
2083         Reviewed by Yury Semikhatsky.
2084
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).
2088
2089         * inspector/front-end/WorkerManager.js:
2090         (WebInspector.WorkerManager.isDedicatedWorkerFrontend):
2091         * inspector/front-end/inspector.js:
2092
2093 2012-07-30  Keishi Hattori  <keishi@webkit.org>
2094
2095         Implement datalist UI for input type color for Chromium
2096         https://bugs.webkit.org/show_bug.cgi?id=92075
2097
2098         Reviewed by Kent Tamura.
2099
2100         Test: platform/chromium/fast/forms/color/color-suggestion-picker-appearance.html
2101
2102         * rendering/RenderThemeChromiumCommon.cpp:
2103         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Added color to types supporting datalist.
2104
2105 2012-07-30  Mario Sanchez Prada  <msanchez@igalia.com>
2106
2107         REGRESSION (r123767): platform/gtk/accessibility/object-with-title.html failing on GTK
2108         https://bugs.webkit.org/show_bug.cgi?id=92477
2109
2110         Reviewed by Chris Fleizach.
2111
2112         Consider title and accessibilityDescription together with helpText to
2113         decide whether an object should be exposed in the accessibility tree.
2114
2115         * accessibility/AccessibilityRenderObject.cpp:
2116         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
2117
2118 2012-07-29  Vsevolod Vlasov  <vsevik@chromium.org>
2119
2120         Web Inspector: Resource agent's reference to cached resources should be weak.
2121         https://bugs.webkit.org/show_bug.cgi?id=92108
2122
2123         Reviewed by Pavel Feldman.
2124
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.
2129
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
2132
2133         * WebCore.exp.in:
2134         * inspector/InspectorController.cpp:
2135         (WebCore::InspectorController::InspectorController):
2136         (WebCore::InspectorController::inspectedPageDestroyed):
2137         * inspector/InspectorInstrumentation.cpp:
2138         (WebCore):
2139         (WebCore::InspectorInstrumentation::willDestroyCachedResourceImpl):
2140         (WebCore::InspectorInstrumentation::registerInstrumentingAgents):
2141         (WebCore::InspectorInstrumentation::unregisterInstrumentingAgents):
2142         * inspector/InspectorInstrumentation.h:
2143         (InspectorInstrumentation):
2144         (WebCore::InspectorInstrumentation::willDestroyCachedResource):
2145         (WebCore):
2146         * inspector/InspectorResourceAgent.cpp:
2147         (WebCore::InspectorResourceAgent::didReceiveData):
2148         (WebCore::InspectorResourceAgent::willDestroyCachedResource):
2149         (WebCore):
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):
2158         (WebCore):
2159         * inspector/NetworkResourcesData.h:
2160         (ResourceData):
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):
2168         (WebCore):
2169         * loader/cache/CachedResource.h:
2170         (CachedResource):
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):
2182         (WebCore):
2183         * testing/Internals.h:
2184         (Internals):
2185         * testing/Internals.idl:
2186
2187 2012-07-29  YoungTaeck Song  <youngtaeck.song@samsung.com>
2188
2189         [WK2][EFL] Accelerated compositing support using TextureMapper on Efl WebKit2
2190         https://bugs.webkit.org/show_bug.cgi?id=91583
2191
2192         Reviewed by Noam Rosenthal.
2193
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.
2197
2198         * CMakeLists.txt:
2199         * PlatformEfl.cmake:
2200         * platform/graphics/GraphicsLayer.cpp:
2201         (WebCore):
2202         * platform/graphics/GraphicsLayer.h:
2203         (GraphicsLayer):
2204         * platform/graphics/GraphicsLayerAnimation.cpp:
2205         * platform/graphics/GraphicsLayerAnimation.h:
2206         * platform/graphics/PlatformLayer.h:
2207         (WebCore):
2208         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
2209         * platform/graphics/texmap/TextureMapperBackingStore.h:
2210         * platform/graphics/texmap/TextureMapperLayer.h:
2211
2212 2012-07-29  YoungTaeck Song  <youngtaeck.song@samsung.com>
2213
2214         [WK2][EFL] TILED_BACKING_STORE support on Efl WebKit2
2215         https://bugs.webkit.org/show_bug.cgi?id=91582
2216
2217         Reviewed by Noam Rosenthal.
2218
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
2221
2222         * CMakeLists.txt:
2223         * PlatformEfl.cmake:
2224
2225 2012-07-29  Keishi Hattori  <keishi@webkit.org>
2226
2227         Fix removing invalid values from color input suggestions
2228         https://bugs.webkit.org/show_bug.cgi?id=92502
2229
2230         Reviewed by Kent Tamura.
2231
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.
2235
2236         No new tests. Tests to be added in Bug 92075.
2237
2238         * html/ColorInputType.cpp:
2239         (WebCore::ColorInputType::typeMismatchFor):
2240         (WebCore):
2241         * html/ColorInputType.h:
2242         (ColorInputType):
2243
2244 2012-07-29  Li Yin  <li.yin@intel.com>
2245
2246         getChannelData should raise exception when index is more than numberOfChannels.
2247         https://bugs.webkit.org/show_bug.cgi?id=92223
2248
2249         Reviewed by Kentaro Hara.
2250
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.
2254
2255         Test: webaudio/audiobuffer.html
2256
2257         * Modules/webaudio/AudioBuffer.cpp:
2258         (WebCore::AudioBuffer::getChannelData):
2259         (WebCore):
2260         * Modules/webaudio/AudioBuffer.h:
2261         (WebCore):
2262         (AudioBuffer):
2263         * Modules/webaudio/AudioBuffer.idl: raise exception when index is not less than numberOfChannels.
2264
2265 2012-07-29  Sukolsak Sakshuwong  <sukolsak@google.com>
2266
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
2269
2270         Reviewed by Ryosuke Niwa.
2271
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.
2276
2277         Test: editing/deleting/forward-delete-empty-table-cell.html
2278
2279         * editing/TypingCommand.cpp:
2280         (WebCore::TypingCommand::forwardDeleteKeyPressed):
2281
2282 2012-07-29  Kwang Yul Seo  <skyul@company100.net>
2283
2284         Remove unused method HTMLConstructionSiteTask::take(HTMLConstructionSiteTask&)
2285         https://bugs.webkit.org/show_bug.cgi?id=92601
2286
2287         Reviewed by Adam Barth.
2288
2289         This method was introduced in r104000, but has never been used from the beginning.
2290
2291         No functional change.
2292
2293         * html/parser/HTMLConstructionSite.h:
2294
2295 2012-07-29  Kenichi Ishibashi  <bashi@chromium.org>
2296
2297         [Chromium] HarfBuzzShaper can't handle segmented text run
2298         https://bugs.webkit.org/show_bug.cgi?id=92445
2299
2300         Reviewed by Tony Chang.
2301
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.
2304
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.
2309
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.
2315         (WebCore):
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:
2320         (HarfBuzzShaper):
2321         * platform/graphics/mac/FontComplexTextMac.cpp:
2322         (WebCore::Font::drawComplexText): Call shaper.setDrawRange().
2323
2324 2012-07-29  Dan Bernstein  <mitz@apple.com>
2325
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
2328
2329         Reviewed by Simon Fraser.
2330
2331         Test: fast/multicol/hit-test-gap-between-pages-flipped.html
2332
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.
2341
2342 2012-07-29  Dan Bernstein  <mitz@apple.com>
2343
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
2346
2347         Reviewed by Ryosuke Niwa.
2348
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.
2352
2353         Enhanced fast/writing-mode/flipped-blocks-hit-test-line-edges.html to cover this.
2354
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:
2369
2370 2012-07-29  Rik Cabanier  <cabanier@adobe.com>
2371
2372         ENABLE_CSS_COMPOSITING flag
2373         https://bugs.webkit.org/show_bug.cgi?id=92553
2374
2375         Reviewed by Dirk Schulze.
2376
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
2378
2379         * GNUmakefile.am:
2380         * Configurations/FeatureDefines.xcconfig:
2381
2382 2012-07-29  Dan Bernstein  <mitz@apple.com>
2383
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
2386
2387         Reviewed by Simon Fraser.
2388
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
2392         coordinates.
2393
2394         Tests: fast/writing-mode/flipped-blocks-hit-test-box-edges.html
2395                fast/writing-mode/flipped-blocks-hit-test-line-edges.html
2396
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
2400         strict ones.
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
2403         strict.
2404
2405 2012-07-28  Dan Bernstein  <mitz@apple.com>
2406
2407         RenderBlock::offsetForContents() is wrong in flipped blocks writing modes
2408         https://bugs.webkit.org/show_bug.cgi?id=92588
2409
2410         Reviewed by Sam Weinig.
2411
2412         Tests: fast/multicol/hit-test-block-axis-flipped.html
2413                fast/writing-mode/flipped-blocks-hit-test-overflow-scroll.html
2414
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.
2420
2421 2012-07-28  Dan Bernstein  <mitz@apple.com>
2422
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
2425
2426         Reviewed by Simon Fraser.
2427
2428         Enhanced the fix for <http://webkit.org/b/92524> to work with flipped lines.
2429
2430         Extended fast/multicol/hit-test-end-of-column-with-line-height.html.
2431
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
2435         after the break.
2436
2437 2012-07-28  Simon Fraser  <simon.fraser@apple.com>
2438
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
2441
2442         Reviewed by Dean Jackson.
2443
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.
2448
2449         Test: compositing/geometry/bounds-ignores-hidden-dynamic-negzindex.html
2450
2451         * rendering/RenderLayerBacking.cpp:
2452         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Repaint the foreground
2453         layer if its size changes, like we do for the main layer.
2454
2455 2012-07-28  Simon Fraser  <simon.fraser@apple.com>
2456
2457         Ignore visibility:hidden elements when computing compositing layer bounds
2458         https://bugs.webkit.org/show_bug.cgi?id=92569
2459
2460         Reviewed by Dan Bernstein.
2461
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.
2465
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
2469
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
2476         flag.
2477         * rendering/RenderLayer.h: Add an ExcludeHiddenDescendants flag to the CalculateLayerBoundsFlags.
2478         * rendering/RenderLayerCompositor.cpp:
2479         (WebCore::RenderLayerCompositor::calculateCompositedBounds): Pass the ExcludeHiddenDescendants
2480         flag.
2481
2482 2012-07-28  Min Qin  <qinmin@chromium.org>
2483
2484         Add an overlay play button to media controls on android
2485         https://bugs.webkit.org/show_bug.cgi?id=92132
2486
2487         Reviewed by Adam Barth.
2488
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.
2492
2493         * WebCore.gypi:
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):
2506         (WebCore):
2507         (WebCore::MediaControlOverlayPlayButtonElement::create):
2508         (WebCore::MediaControlOverlayPlayButtonElement::defaultEventHandler):
2509         (WebCore::MediaControlOverlayPlayButtonElement::updateDisplayType):
2510         (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
2511         * html/shadow/MediaControlElements.h:
2512         (MediaControlOverlayPlayButtonElement):
2513         (WebCore):
2514         * html/shadow/MediaControlRootElementChromium.cpp:
2515         (WebCore::MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement):
2516         (WebCore::MediaControlPanelEnclosureElement::create):
2517         (WebCore):
2518         (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
2519         (WebCore::MediaControlRootElementChromium::create):
2520         (WebCore::MediaControlRootElementChromium::initializeControls):
2521         * html/shadow/MediaControlRootElementChromium.h:
2522         (MediaControlChromiumEnclosureElement):
2523         (WebCore):
2524         (MediaControlPanelEnclosureElement):
2525         (MediaControlRootElementChromium):
2526         * html/shadow/MediaControlRootElementChromiumAndroid.cpp: Added.
2527         (WebCore):
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.
2538         (WebCore):
2539         (MediaControlOverlayEnclosureElement):
2540         (MediaControlRootElementChromiumAndroid):
2541         * platform/ThemeTypes.h:
2542         * rendering/RenderMediaControlsChromium.cpp:
2543         (WebCore::paintMediaOverlayPlayButton):
2544         (WebCore):
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):
2552         (WebCore):
2553         * rendering/RenderThemeChromiumAndroid.h:
2554
2555 2012-07-28  Mario Sanchez Prada  <msanchez@igalia.com>
2556
2557         [GTK] Add a new and reusable enchant-based spellchecker in WebCore
2558         https://bugs.webkit.org/show_bug.cgi?id=90269
2559
2560         Reviewed by Martin Robinson.
2561
2562         Move enchant specific code down to WebCore, into a new class
2563         TextCheckerEnchant, that we can use from WK1 and WK2.
2564
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.
2578         (WebCore):
2579         (TextCheckerEnchant):
2580         (WebCore::TextCheckerEnchant::create):
2581
2582 2012-07-28  Vineet Chaudhary  <rgf748@motorola.com>
2583
2584         [Clamp] support in binding generator.
2585         https://bugs.webkit.org/show_bug.cgi?id=77605
2586
2587         Reviewed by Kentaro Hara.
2588
2589         Currently [Clamp] extended attribute in IDL files.
2590         Spec: http://www.w3.org/TR/2012/CR-WebIDL-20120419/#Clamp
2591
2592         Tests: TestObj.idl
2593
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):
2612
2613 2012-07-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2614
2615         Unreviewed, rolling out r123908.
2616         http://trac.webkit.org/changeset/123908
2617         https://bugs.webkit.org/show_bug.cgi?id=92572
2618
2619         Broke Chromium Linux compile (Requested by pkasting on
2620         #webkit).
2621
2622         * WebCore.gypi:
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:
2630         (WebCore):
2631         * html/shadow/MediaControlElements.h:
2632         (WebCore):
2633         * html/shadow/MediaControlRootElementChromium.cpp:
2634         (WebCore::MediaControlChromiumEnclosureElement::create):
2635         (WebCore):
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:
2652
2653 2012-07-27  Eli Fidler  <efidler@rim.com>
2654
2655         [BlackBerry] Use new LocaleHandler.
2656         https://bugs.webkit.org/show_bug.cgi?id=92548
2657
2658         Reviewed by Yong Li.
2659
2660         RIM PR 128381
2661
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):
2669
2670 2012-07-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2671
2672         Change constructor with explicit constructor in WebCore/Modules
2673         https://bugs.webkit.org/show_bug.cgi?id=92529
2674
2675         Reviewed by Kentaro Hara.
2676
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
2679         type conversion.
2680
2681         No new tests. Covered by existing tests.
2682
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:
2691         (IceCandidate):
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:
2709         (Vibration):
2710         * Modules/webaudio/AudioBuffer.h:
2711         (AudioBuffer):
2712         * Modules/webaudio/AudioContext.h:
2713         (AudioContext):
2714         * Modules/webaudio/AudioNodeInput.h:
2715         (AudioNodeInput):
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:
2723         (DelayDSPKernel):
2724         * Modules/webaudio/OfflineAudioCompletionEvent.h:
2725         (OfflineAudioCompletionEvent):
2726         * Modules/webaudio/WaveShaperDSPKernel.h:
2727         (WebCore::WaveShaperDSPKernel::WaveShaperDSPKernel):
2728         * Modules/webaudio/WaveShaperNode.h:
2729         (WaveShaperNode):
2730         * Modules/webaudio/WaveTable.h:
2731         (WaveTable):
2732         * Modules/webdatabase/DatabaseAuthorizer.h:
2733         (DatabaseAuthorizer):
2734         * Modules/webdatabase/DatabaseTask.h:
2735         (Database::DatabaseTransactionTask):
2736         * Modules/webdatabase/DatabaseTracker.h:
2737         (DatabaseTracker):
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):
2745
2746 2012-07-27  Kentaro Hara  <haraken@chromium.org>
2747
2748         [V8] Optimize Element::getAttributeNS() by replacing String with AtomicString
2749         https://bugs.webkit.org/show_bug.cgi?id=90276
2750
2751         Reviewed by Adam Barth.
2752
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.
2756
2757         Actually this change affects V8 performance only.
2758
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.
2764
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
2768         getAttributeNS()
2769         -> the AtomicString is passed to QualifiedName() constructor.
2770
2771         [V8 without the patch]
2772         The binding code retrieves a cached external String for a given
2773         JavaScript string
2774         -> the String is passed to getAttributeNS()
2775         -> the String is converted to AtomicString when it is passed to
2776         QualifiedName() constructor.
2777
2778         [V8 with the patch]
2779         The binding code retrieves a cached external AtomicString for a given
2780         JavaScript string
2781         -> the AtomicString is passed to getAttributeNS()
2782         -> the AtomicString is passed to QualifiedName() constructor.
2783
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.
2787
2788         Performance test: https://bugs.webkit.org/attachment.cgi?id=150158
2789
2790         getAttributeNS (Chromium/Linux):
2791         577.80ms => 454.60ms
2792
2793         * dom/Element.cpp:
2794         (WebCore::Element::getAttributeNS):
2795         * dom/Element.h:
2796         (Element):
2797
2798 2012-07-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2799
2800         Unreviewed, rolling out r123679.
2801         http://trac.webkit.org/changeset/123679
2802         https://bugs.webkit.org/show_bug.cgi?id=92565
2803
2804         Slowed down HTML parsing by 3.6% (Requested by abarth on
2805         #webkit).
2806
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):
2841         (SegmentedString):
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):
2857
2858 2012-07-27  Jer Noble  <jer.noble@apple.com>
2859
2860         Reset the set of "seen" plugins when the main frame load is committed.
2861         https://bugs.webkit.org/show_bug.cgi?id=92564
2862
2863         Reviewed by Anders Carlsson.
2864
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.
2868
2869         No new tests; the "seen" plugin list is for diagnostic purposes only.
2870
2871         * loader/FrameLoader.cpp:
2872         (WebCore::FrameLoader::dispatchDidCommitLoad):
2873         * page/Page.cpp:
2874         (WebCore::Page::resetSeenPlugins):
2875         * page/Page.h:
2876
2877 2012-07-27  Sukolsak Sakshuwong  <sukolsak@google.com>
2878
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
2881
2882         Reviewed by Ryosuke Niwa.
2883
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.
2891
2892         Test: editing/style/redundant-background-color.html
2893
2894         * editing/EditingStyle.cpp:
2895         (WebCore::getRGBABackgroundColor):
2896         (WebCore):
2897         (WebCore::getPropertiesNotIn):
2898
2899 2012-07-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2900
2901         [EFL] Return 0 when network is offline
2902         https://bugs.webkit.org/show_bug.cgi?id=92454
2903
2904         Reviewed by Kenneth Rohde Christiansen.
2905
2906         Network Info latest spec says 0 is returned when network is offline.
2907         r123769 modified to return infinity value when network is offiline.
2908
2909         * platform/efl/NetworkInfoProviderEfl.cpp:
2910         (WebCore::NetworkInfoProviderEfl::bandwidth):
2911
2912 2012-07-27  Scott Graham  <scottmg@chromium.org>
2913
2914         Change navigator.webkitGamepads[] to navigator.webkitGetGamepads()
2915         https://bugs.webkit.org/show_bug.cgi?id=92533
2916
2917         Reviewed by Adam Barth.
2918
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.
2924
2925         * Modules/gamepad/NavigatorGamepad.cpp:
2926         (WebCore::NavigatorGamepad::webkitGetGamepads):
2927         * Modules/gamepad/NavigatorGamepad.h:
2928         (NavigatorGamepad):
2929         * Modules/gamepad/NavigatorGamepad.idl:
2930         * bindings/generic/RuntimeEnabledFeatures.h:
2931         (WebCore::RuntimeEnabledFeatures::setWebkitGetGamepadsEnabled):
2932         (WebCore::RuntimeEnabledFeatures::webkitGetGamepadsEnabled):
2933
2934 2012-07-27  Brady Eidson  <beidson@apple.com>
2935
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
2938
2939         Reviewed by Anders Carlsson.
2940
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.
2943
2944         Test: plugins/npruntime/overrides-all-properties.html
2945
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):
2950
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):
2961
2962 2012-07-27  Arnaud Renevier  <a.renevier@sisa.samsung.com>
2963
2964         use createUninitialized when creating TypedArray from another array
2965         https://bugs.webkit.org/show_bug.cgi?id=92518
2966
2967         Reviewed by Kenneth Russell.
2968
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
2972         array.
2973
2974         Test: fast/canvas/webgl/array-constructor.html
2975
2976         * bindings/js/JSArrayBufferViewHelper.h:
2977         (WebCore::constructArrayBufferViewWithTypedArrayArgument):
2978         (WebCore::constructArrayBufferView):
2979
2980 2012-07-27  Eli Fidler  <efidler@rim.com>
2981
2982         [BlackBerry] Adapt to change in the FontInfo platform API.
2983         https://bugs.webkit.org/show_bug.cgi?id=92547
2984
2985         Reviewed by Yong Li
2986
2987         RIM PR 161263
2988
2989         * page/blackberry/SettingsBlackBerry.cpp:
2990         (WebCore::Settings::initializeDefaultFontFamilies):
2991
2992 2012-07-27  Antoine Labour  <piman@chromium.org>
2993
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
2996
2997         Reviewed by Stephen White.
2998
2999         Because of precision issues, some filters were returning true to
3000         matrixNeedsClamping when they can return false. This fixes it.
3001
3002         No new tests in this CL, a follow-up change refactors the code to add
3003         several tests.
3004
3005         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
3006
3007 2012-07-27  Jer Noble  <jer.noble@apple.com>
3008
3009         Add diagnostic logging for plugins-per-page.
3010         https://bugs.webkit.org/show_bug.cgi?id=92538
3011
3012         Reviewed by Anders Carlsson.
3013
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.
3016
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):
3022
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):
3029
3030         Add new diagnostic key values:
3031         * page/DiagnosticLoggingKeys.cpp:
3032         (WebCore::DiagnosticLoggingKeys::pageContainsPluginKey):
3033         (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOnePluginKey):
3034         * page/DiagnosticLoggingKeys.h:
3035
3036         Add a map of plugin types seen per-page for diagnostic purposes:
3037         * page/Page.cpp:
3038         (WebCore::Page::hasSeenAnyPlugin):
3039         (WebCore::Page::hasSeenPlugin):
3040         (WebCore::Page::sawPlugin):
3041         * page/Page.h:
3042
3043 2012-07-27  Patrick Gansterer  <paroga@webkit.org>
3044
3045         [WINCE] Use macros from ICU instead of defining the same functionality again
3046         https://bugs.webkit.org/show_bug.cgi?id=92530
3047
3048         Reviewed by Ryosuke Niwa.
3049
3050         Replace isHighSurrogate() with U16_IS_LEAD(), isLowSurrogate() with
3051         U16_IS_TRAIL() and surrogateToUcs4() with U16_GET_SUPPLEMENTARY().
3052
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):
3059
3060 2012-07-27  Christophe Dumez  <christophe.dumez@intel.com>
3061
3062         Build warning in CSSPrimitiveValueMappings.h when CSS_STICKY_POSITION is disabled
3063         https://bugs.webkit.org/show_bug.cgi?id=92523
3064
3065         Reviewed by Simon Fraser.
3066
3067         Move #ifdef in CSSPrimitiveValueMappings.h to silent compilation warning
3068         when CSS_STICKY_POSITION is disabled.
3069
3070         No new tests, no behavior change.
3071
3072         * css/CSSPrimitiveValueMappings.h:
3073         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3074
3075 2012-07-27  Vivek Galatage  <vivekgalatage@gmail.com>
3076
3077         DragController should ascertain dragClient to be non-null
3078         https://bugs.webkit.org/show_bug.cgi?id=92474
3079
3080         Reviewed by Tony Chang.
3081
3082         The DragController must always ensure a valid dragClient object. Hence
3083         adding the ASSERT to assure that.
3084
3085         No new tests. Added assertion for PageClient.dragClient.
3086
3087         * page/DragController.cpp:
3088         (WebCore::DragController::DragController):
3089
3090 2012-07-27  Adrienne Walker  <enne@google.com>
3091
3092         [chromium] Clean up LayerRendererChromium::drawTexturedQuad
3093         https://bugs.webkit.org/show_bug.cgi?id=91823
3094
3095         Reviewed by James Robinson.
3096
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
3102
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
3107         everywhere).
3108
3109         No new tests; no change in functionality.
3110
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):
3128
3129 2012-07-27  Shawn Singh  <shawnsingh@chromium.org>
3130
3131         [chromium] CCLayerTreeHost placeholder scissor should be deviceViewportSize instead of viewportSize
3132         https://bugs.webkit.org/show_bug.cgi?id=92469
3133
3134         Reviewed by Adrienne Walker.
3135
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.
3139
3140         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3141         (WebCore::CCLayerTreeHost::updateLayers):
3142
3143 2012-07-27  Kevin Ellis  <kevers@chromium.org>
3144
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
3147
3148         Reviewed by Antonio Gomes.
3149
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.
3156
3157         Test: touchadjustment/search-cancel.html
3158
3159         * page/TouchAdjustment.cpp:
3160         (TouchAdjustment):
3161         (WebCore::TouchAdjustment::nodeRespondsToTapGesture):
3162
3163 2012-07-27  Varun Jain  <varunjain@chromium.org>
3164
3165         Animated SVGs do not clear previous frame completely in hidpi mode.
3166         https://bugs.webkit.org/show_bug.cgi?id=92395
3167
3168         Reviewed by Darin Adler.
3169
3170         The rect thats is cleared in subsequent frames needed to be scaled with device scale.
3171
3172         Test: svg/as-image/animated-svg-repaints-completely-in-hidpi.html
3173
3174         * svg/graphics/SVGImage.cpp:
3175         (WebCore::SVGImage::drawSVGToImageBuffer):
3176
3177 2012-07-27  Scott Graham  <scottmg@chromium.org>
3178
3179         Fix COMPILE_ASSERT for InlineFlowBox growing
3180         https://bugs.webkit.org/show_bug.cgi?id=92541
3181
3182         Reviewed by Dan Bernstein.
3183
3184         Use unsigned instead of bool to keep size small on Windows.
3185
3186         No new tests.
3187
3188         * rendering/InlineFlowBox.h:
3189         (InlineFlowBox):
3190
3191 2012-07-27  Beth Dakin  <bdakin@apple.com>
3192
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
3196         -and corresponding-
3197         <rdar://problem/11683788>
3198
3199         Reviewed by Simon Fraser.
3200
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.
3204
3205         createCompatibleBuffer() is used for clip text and gradients.
3206
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:
3211         (GraphicsContext):
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):
3224
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):
3229
3230         Remove some symbol cruft that doesn't seem to require a replacement.
3231         * WebCore.exp.in:
3232
3233         Use DefinitelyIncludeDeviceScale when getting the CTM in the buggy spot.
3234         * platform/graphics/GraphicsContext.cpp:
3235         (WebCore::GraphicsContext::createCompatibleBuffer):
3236
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):
3243
3244 2012-07-27  Tony Chang  <tony@chromium.org>
3245
3246         flex-wrap: wrap not wrapping for % sized items in column flow
3247         https://bugs.webkit.org/show_bug.cgi?id=92324
3248
3249         Reviewed by Ojan Vafai.
3250
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.
3253
3254         Test: css3/flexbox/percentage-heights.html
3255
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).
3262
3263 2012-07-27  Min Qin  <qinmin@chromium.org>
3264
3265         Add an overlay play button to media controls on android
3266         https://bugs.webkit.org/show_bug.cgi?id=92132
3267
3268         Reviewed by Adam Barth.
3269
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.
3273
3274         * WebCore.gypi:
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):
3287         (WebCore):
3288         (WebCore::MediaControlOverlayPlayButtonElement::create):
3289         (WebCore::MediaControlOverlayPlayButtonElement::defaultEventHandler):
3290         (WebCore::MediaControlOverlayPlayButtonElement::updateDisplayType):
3291         (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
3292         * html/shadow/MediaControlElements.h:
3293         (MediaControlOverlayPlayButtonElement):
3294         (WebCore):
3295         * html/shadow/MediaControlRootElementChromium.cpp:
3296         (WebCore::MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement):
3297         (WebCore::MediaControlPanelEnclosureElement::create):
3298         (WebCore):
3299         (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
3300         (WebCore::MediaControlRootElementChromium::create):
3301         (WebCore::MediaControlRootElementChromium::initializeControls):
3302         * html/shadow/MediaControlRootElementChromium.h:
3303         (MediaControlChromiumEnclosureElement):
3304         (WebCore):
3305         (MediaControlPanelEnclosureElement):
3306         (MediaControlRootElementChromium):
3307         * html/shadow/MediaControlRootElementChromiumAndroid.cpp: Added.
3308         (WebCore):
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.
3319         (WebCore):
3320         (MediaControlOverlayEnclosureElement):
3321         (MediaControlRootElementChromiumAndroid):
3322         * platform/ThemeTypes.h:
3323         * rendering/RenderMediaControlsChromium.cpp:
3324         (WebCore::paintMediaOverlayPlayButton):
3325         (WebCore):
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):
3333         (WebCore):
3334         * rendering/RenderThemeChromiumAndroid.h:
3335
3336 2012-07-27  Anders Carlsson  <andersca@apple.com>
3337
3338         Show the unavailable plug-in indicator for Java applets as well
3339         https://bugs.webkit.org/show_bug.cgi?id=92521
3340
3341         Reviewed by Sam Weinig.
3342
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.
3345
3346         * WebCore.exp.in:
3347         Export a symbol needed by WebKit2.
3348
3349         * html/HTMLAppletElement.cpp:
3350         (WebCore::HTMLAppletElement::HTMLAppletElement):
3351         Set the correct service type.
3352
3353         * loader/SubframeLoader.cpp:
3354         (WebCore::SubframeLoader::createJavaAppletWidget):
3355         Enable the unavailable plug-in indicator if we fail to create the java applet widget.
3356
3357 2012-07-27  Dan Bernstein  <mitz@apple.com>
3358
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
3361
3362         Reviewed by Anders Carlsson.
3363
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.
3367
3368         Test: fast/multicol/hit-test-end-of-column-with-line-height.html
3369
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
3377         a line.
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.
3383
3384 2012-07-27  John J. Barton  <johnjbarton@johnjbarton.com>
3385
3386         Web Inspector: Allow front_end to be loaded into an iframe
3387         https://bugs.webkit.org/show_bug.cgi?id=92437
3388
3389         Reviewed by Pavel Feldman.
3390
3391         This change only affects 'embedders' of the inspector/front_end. No change of function for WebKit ports.
3392
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 
3402         window.parent.
3403
3404 2012-07-27  John J. Barton  <johnjbarton@johnjbarton.com>
3405
3406         Web Inspector: Allow front_end to be loaded into an iframe
3407         https://bugs.webkit.org/show_bug.cgi?id=92437
3408
3409         Reviewed by Pavel Feldman.
3410
3411         This change only affects 'embedders' of the inspector/front_end. No change of function for WebKit ports.
3412
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 
3422         window.parent.
3423
3424 2012-07-27  Vivek Galatage  <vivekgalatage@gmail.com>
3425
3426         Web Inspector: InspectorPageAgent should ascertain document to be non-null in updateViewMetrics()
3427         https://bugs.webkit.org/show_bug.cgi?id=92476
3428
3429         Reviewed by Pavel Feldman.
3430
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.
3433
3434         No new tests as added null check.
3435
3436         * inspector/InspectorPageAgent.cpp:
3437         (WebCore::InspectorPageAgent::updateViewMetrics):
3438
3439 2012-07-27  Mike West  <mkwst@chromium.org>
3440
3441         CSP directives containing invalid characters should log an error.
3442         https://bugs.webkit.org/show_bug.cgi?id=92487
3443
3444         Reviewed by Adam Barth.
3445
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
3451         directive.
3452
3453         Test: http/tests/security/contentSecurityPolicy/directive-parsing-04.html
3454
3455         * page/ContentSecurityPolicy.cpp:
3456         (WebCore::CSPDirectiveList::parseDirective):
3457