96a025ffb39fc81c924bb49e8f6359d195835615
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-05-16  James Robinson  <jamesr@chromium.org>
2
3         GraphicsContext3D interface should not be aware of CanvasRenderingContext
4         https://bugs.webkit.org/show_bug.cgi?id=86550
5
6         Reviewed by Darin Adler.
7
8         GraphicsContext3D is a WebCore/platform API construct. CanvasRenderingContext is a WebCore/html concept. Thus,
9         the former shouldn't depend on the latter.  In turns out that all everyone ever wants from a
10         CanvasRenderingContext in GraphicsContext3D is its underlying ImageBuffer, which is a WebCore/platform concept,
11         so this just updates the APIs and implementations to use that instead.
12
13         Refactor only, no new tests.
14
15         * html/canvas/WebGLRenderingContext.cpp:
16         (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
17         * platform/graphics/GraphicsContext3D.h:
18         * platform/graphics/cairo/DrawingBufferCairo.cpp:
19         (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
20         * platform/graphics/chromium/DrawingBufferChromium.cpp:
21         (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
22         * platform/graphics/clutter/DrawingBufferClutter.cpp:
23         (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
24         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
25         (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
26         (WebCore::GraphicsContext3D::paintCompositedResultsToCanvas):
27         * platform/graphics/gpu/DrawingBuffer.h:
28         * platform/graphics/gpu/qt/DrawingBufferQt.cpp:
29         (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
30         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
31         (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
32         (WebCore::GraphicsContext3D::paintCompositedResultsToCanvas):
33
34 2012-05-16  Joshua Bell  <jsbell@chromium.org>
35
36         SerializedScriptValue: lazy initialization of static nullValue not threadsafe
37         https://bugs.webkit.org/show_bug.cgi?id=70833
38
39         Reviewed by Kentaro Hara.
40
41         Remove unsafe lazy initialization of static |null| SSV. None of the callers
42         appeared to be in performance-critical areas - most were preparing an event to
43         be dispatched to script - so no per-call-site caching was added.
44
45         No new tests - no functional changes.
46
47         * bindings/js/SerializedScriptValue.cpp: Mint a new one each time.
48         (WebCore::SerializedScriptValue::nullValue):
49         * bindings/js/SerializedScriptValue.h: Return via PassRefPtr.
50         * bindings/v8/SerializedScriptValue.cpp: Mint a new one each time.
51         (WebCore::SerializedScriptValue::nullValue):
52         * bindings/v8/SerializedScriptValue.h: Return via PassRefPtr.
53         (SerializedScriptValue):
54         * dom/Document.cpp:
55         (WebCore::Document::statePopped): Change to PassRefPtr to maintain refcount.
56         * dom/Document.h:
57         (Document):
58
59 2012-05-16  James Robinson  <jamesr@chromium.org>
60
61         CachedImage does not clear the ImageObserver pointer when dropping its Image ref
62         https://bugs.webkit.org/show_bug.cgi?id=86689
63
64         Reviewed by Eric Seidel.
65
66         Image instances keep a weak pointer to their ImageObserver, which may be null. CachedImage is an ImageObserver
67         and holds a RefPtr<Image> m_image. When CachedImage initializes its m_image to either an SVGImage or BitmapImage,
68         it sets itself as that Image's ImageObserver. However, CachedImage never clears the ImageObserver pointer, even
69         when dropping its reference to the Image. This means if other code holds a RefPtr<Image> there is no promise
70         that calls on that Image will be valid. This patch clears the CachedImage::m_image's ImageObserver pointer
71         whenever the CachedImage drops its reference. Image already has null checks for its m_imageObserver so this is
72         always a safe operation.
73
74         * loader/cache/CachedImage.cpp:
75         (WebCore::CachedImage::~CachedImage):
76         (WebCore::CachedImage::clear):
77
78 2012-05-16  Kentaro Hara  <haraken@chromium.org>
79
80         [V8] Fix a broken copyright of V8SVGElementCustom.cpp
81         https://bugs.webkit.org/show_bug.cgi?id=86569
82
83         Reviewed by Nate Chapin.
84
85         This patch just fixes a broken copyright of V8SVGElementCustom.cpp.
86
87         Blame changeset: r54153
88
89         No tests. No change in behavior.
90
91         * bindings/v8/custom/V8SVGElementCustom.cpp:
92
93 2012-05-16  Kentaro Hara  <haraken@chromium.org>
94
95         [V8] Pass Isolate to convertEventTargetToV8Object()
96         https://bugs.webkit.org/show_bug.cgi?id=86566
97
98         Reviewed by Nate Chapin.
99
100         The objective is to pass Isolate around in V8 bindings.
101         This patch passes Isolate to convertEventTargetToV8Object().
102         I made the 'isolate' argument optional, since
103         convertEventTargetToV8Object() can be called from the WebCore context.
104
105         No tests. No change in behavior.
106
107         * bindings/scripts/CodeGeneratorV8.pm:
108         (NativeToJSValue):
109         * bindings/v8/V8DOMWrapper.cpp:
110         (WebCore):
111         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
112         * bindings/v8/V8DOMWrapper.h:
113         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
114         (V8DOMWrapper):
115
116 2012-05-16  Peter Kasting  <pkasting@google.com>
117
118         Correctly display malformed GIFs which specify bogus extension block
119         sizes.
120         https://bugs.webkit.org/show_bug.cgi?id=86531
121
122         Reviewed by James Robinson.
123         
124         This was broken by r117333, which was an attempt to avoid memory errors
125         on GIFs that were malformed in a similar way.  It turns out some GIFs
126         in the wild (i.e. "our LayoutTests directory") relied on some of the
127         effects of the old code.  This refixes in a way that doesn't break
128         these.
129
130         No new tests, covered by existing tests.
131
132         * platform/image-decoders/gif/GIFImageReader.cpp:
133         (GIFImageReader::read):
134
135 2012-05-16  Chris Rogers  <crogers@google.com>
136
137         AudioParam must support fan-in (multiple audio connections)
138         https://bugs.webkit.org/show_bug.cgi?id=83610
139
140         Reviewed by Kenneth Russell.
141
142         Test: webaudio/audioparam-summingjunction.html
143
144         * Modules/webaudio/AudioParam.cpp:
145         * Modules/webaudio/AudioParam.h:
146         (WebCore::AudioParam::calculateSampleAccurateValues):
147         (WebCore::AudioParam::calculateAudioRateSignalValues):
148         Sums intrinsic parameter value with all audio-rate connections.
149
150         (WebCore::AudioParam::connect):
151         (WebCore::AudioParam::disconnect):
152         Support multiple connections.
153
154         (WebCore::AudioParam::hasSampleAccurateValues):
155         If we have one or more audio-rate connections.
156
157         (WebCore::AudioParam::AudioParam):
158         AudioParam now sub-classes AudioSummingJunction.
159
160 2012-05-16  Kentaro Hara  <haraken@chromium.org>
161
162         [V8] Pass Isolate to createV8HTMLWrapper() and createV8SVGWrapper()
163         https://bugs.webkit.org/show_bug.cgi?id=86558
164
165         Reviewed by Nate Chapin.
166
167         The objective is to pass Isolate around in V8 bindings.
168         This patch passes Isolate to createV8HTMLWrapper() and createV8SVGWrapper().
169
170         Basically 'isolate' has been implemented as the last argument
171         but before 'forceNewObject' argument, because 'forceNewObject' is an optional
172         argument and omitted in most cases. Due to the convention,
173         this patch puts 'isolate' before 'forceNewObject'.
174
175         No tests. No change in behavior.
176
177         * bindings/v8/custom/V8HTMLElementCustom.cpp:
178         (WebCore::toV8):
179         * bindings/v8/custom/V8SVGElementCustom.cpp:
180         (WebCore::toV8):
181         * dom/make_names.pl:
182         (printWrapperFunctions):
183         (printWrapperFactoryCppFile):
184         (printWrapperFactoryHeaderFile):
185
186 2012-05-16  Ryosuke Niwa  <rniwa@webkit.org>
187
188         Move showStyle from CSSStyleDeclaration to StylePropertySet
189         https://bugs.webkit.org/show_bug.cgi?id=86675
190
191         Reviewed by Andreas Kling.
192
193         Moved the function. Also deleted CSSStyleDeclaration.cpp since it's no longer needed.
194
195         * CMakeLists.txt:
196         * GNUmakefile.list.am:
197         * Target.pri:
198         * WebCore.gypi:
199         * WebCore.vcproj/WebCore.vcproj:
200         * WebCore.xcodeproj/project.pbxproj:
201         * css/CSSAllInOne.cpp:
202         * css/CSSStyleDeclaration.cpp:
203         (WebCore):
204         * css/CSSStyleDeclaration.h:
205         (CSSStyleDeclaration):
206         * css/StylePropertySet.cpp:
207         (WebCore):
208         (WebCore::StylePropertySet::showStyle):
209         * css/StylePropertySet.h:
210         (StylePropertySet):
211
212 2012-05-16  Martin Robinson  <mrobinson@igalia.com>
213
214         Fix the indexed database build for GTK+.
215
216         * GNUmakefile.list.am: Add missing files to the build.
217         * bindings/gobject/GNUmakefile.am: Be smarter about filtering out deactivating indexed database.
218         * bindings/scripts/CodeGeneratorGObject.pm:
219         (SkipAttribute): Always skip attributes that return indexed database types.
220
221 2012-05-16  Jon Lee  <jonlee@apple.com>
222
223         Animated GIFs in page cache get updated
224         https://bugs.webkit.org/show_bug.cgi?id=86668
225         <rdar://problem/11395549>
226
227         Reviewed by Brady Eidson.
228
229         Test: fast/loader/image-in-page-cache.html
230
231         * rendering/RenderImage.cpp:
232         (WebCore::RenderImage::imageChanged): When we are notified by the CachedImage that the image has
233         changed, we check to see if the document is in the page cache. If so, we should not be updating,
234         so we bail out early.
235
236 2012-05-16  Tim Horton  <timothy_horton@apple.com>
237
238         Crash if SVG gradient stop has display: none set
239         https://bugs.webkit.org/show_bug.cgi?id=86686
240         <rdar://problem/10751905>
241
242         Reviewed by Dean Jackson.
243
244         Create a renderer for SVGStopElement regardless of the "display" property.
245         This matches the behavior of Opera and the SVG specification.
246
247         Test: svg/custom/gradient-stop-display-none-crash.svg
248
249         * svg/SVGStopElement.cpp:
250         (WebCore::SVGStopElement::rendererIsNeeded):
251         (WebCore):
252         * svg/SVGStopElement.h:
253         (SVGStopElement):
254
255 2012-05-16  Dana Jansens  <danakj@chromium.org>
256
257         [chromium] Clear the m_private pointer when destroying WebFilterOperations to avoid assert in WebPrivateOwnPtr
258         https://bugs.webkit.org/show_bug.cgi?id=86654
259
260         Reviewed by James Robinson.
261
262         * platform/chromium/support/WebFilterOperations.cpp:
263         (WebKit::WebFilterOperations::reset):
264         (WebKit::WebFilterOperations::destroy):
265         (WebKit):
266
267 2012-05-16  Ryosuke Niwa  <rniwa@webkit.org>
268
269         REGRESSION(r92823): WebKit strips font-weight: normal from b element when copying
270         https://bugs.webkit.org/show_bug.cgi?id=86663
271
272         Reviewed by Tony Chang.
273
274         The bug was caused by removeStyleFromRulesAndContext incorrectly stripping font-weight property
275         even when the context had no font-weight property because of a property name mismatch in getPropertiesNotIn.
276
277         Fixed the mismatch.
278
279         Test: editing/pasteboard/paste-text-with-style-5.html
280
281         * editing/EditingStyle.cpp:
282         (WebCore::getPropertiesNotIn):
283
284 2012-05-16  Ryosuke Niwa  <rniwa@webkit.org>
285
286         Merge nextRootInlineBox with nextLinePosition
287         https://bugs.webkit.org/show_bug.cgi?id=81593
288
289         Reviewed by Enrica Casucci.
290
291         Call previousRootInlineBox and nextRootInlineBox in previousLinePosition and nextLinePosition respectively
292         to share the code. Moved out the nullity check of startBox and extracted the renderer's node from the former
293         two, and added editableType to their argument lists to match the interface in both use cases.
294
295         Also moved out the code to extract root inline box using RenderedPosition from those two functions and
296         expanded in call sites since previousLinePosition and nextLinePosition need to return the candidate position
297         even when the root inline box doesn't exist. To this end, renamed previousRootInlineBox and nextRootInlineBox
298         to previousRootInlineBoxCandidatePosition and nextRootInlineBoxCandidatePosition respectively.
299
300         In addition, got rid of one version of nextLeafWithSameEditability that adjusted node with respect to offset
301         This variant did:
302
303         Node* child = node->childNode(offset);
304         node = child ? child->nextLeafNode() : node->lastDescendant()->nextLeafNode();
305
306         instead of:
307
308         node = node->nextLeafNode();
309
310         at the beginning of the function. Observe that the former code is logically equivalent to:
311
312         Node* child = node->childNode(offset);
313         node = child ? child : node->lastDescendant();
314         node = node->nextLeafNode();
315
316         Thus, the first two lines of this logically equivalent code is added in nextLinePosition wherein we used to
317         call the removed variant.
318
319         This refactoring with no behavioral change would help us resolving the bug 81490.
320
321         * editing/visible_units.cpp:
322         (WebCore::previousRootInlineBoxCandidatePosition): Renamed from previousRootInlineBox.
323         (WebCore::nextRootInlineBoxCandidatePosition): Renamed from nextRootInlineBox.
324         (WebCore::logicallyPreviousBox): Checks the nullity of startBox's renderer and node. Also extracts the root
325         inline box out of the position per the interface change.
326         (WebCore::logicallyNextBox): Ditto.
327         (WebCore::previousLinePosition): Calls previousRootInlineBoxCandidatePosition.
328         (WebCore::nextLinePosition): Calls nextRootInlineBoxCandidatePosition.
329
330 2012-05-16  Noel Gordon  <noel.gordon@gmail.com>
331
332         [chromium] Remove ImageDecoderCG.cpp from platform/image-decoders
333         https://bugs.webkit.org/show_bug.cgi?id=86346
334
335         Reviewed by Adam Barth.
336
337         ImageDecoderCG.cpp was added for use in the Chromium port in r70846. Remove the
338         implementation now that Chromium uses Skia on Mac OSX by default.
339
340         No new tests. No change in behavior.
341         
342         * WebCore.gypi: Remove ImageDecoderCG.cpp from the gyp project.
343         * platform/graphics/ImageSource.h: Revert the r70846 changes.
344         * platform/image-decoders/ImageDecoder.cpp: Remove copyReferenceToBitmapData().
345         (WebCore::ImageFrame::operator=): Return to using copyBitmapData() (as it was)
346         given the removal of copyReferenceToBitmapData() above.
347         * platform/image-decoders/ImageDecoder.h:
348         (ImageFrame): Remove copyReferenceToBitmapData() declaration.
349         * platform/image-decoders/cg/ImageDecoderCG.cpp: Removed, and it was the only
350         decoder with a port-specific implementation of copyReferenceToBitmapData().
351
352 2012-05-16  Raymond Toy  <rtoy@google.com>
353
354         Simplify AudioNode ref-counting by removing RefTypeDisabled
355         https://bugs.webkit.org/show_bug.cgi?id=85681
356
357         Reviewed by Chris Rogers.
358
359         Existing tests should cover these changes.
360
361         * Modules/webaudio/AudioNode.cpp: Remove RefTypeDiabled and m_disabledRefCount.
362         (WebCore::AudioNode::AudioNode):
363         (WebCore::AudioNode::~AudioNode):
364         (WebCore::AudioNode::enableOutputsIfNecessary): New
365         (WebCore::AudioNode::ref): 
366         (WebCore::AudioNode::disableOutputsIfNecessary): New
367         (WebCore::AudioNode::finishDeref):
368         * Modules/webaudio/AudioNode.h: Remove RefTypeDisabled and m_disabledRefCount.
369         * Modules/webaudio/AudioNodeInput.cpp: Removed uses of RefTypeDisbled.
370         (WebCore::AudioNodeInput::disconnect):
371         (WebCore::AudioNodeInput::disable):
372         (WebCore::AudioNodeInput::enable):
373
374 2012-05-16  Ojan Vafai  <ojan@chromium.org>
375
376         Fix perf regression from r116487
377         https://bugs.webkit.org/show_bug.cgi?id=86680
378
379         Reviewed by Ryosuke Niwa.
380
381         http://trac.webkit.org/changeset/116487 caused a 6% regression on
382         Dromaeo's dom-attr test. The issue is that we invalidated NodeList
383         caches whenever an id/checked/type attribute changed.
384
385         First, we don't need to invalidate on checked/type since that only
386         affects the values return by NodeList items, not the list of items.
387         Second, we only need to invalidate NodeList caches when an id attribute
388         changes on a FormControlElement.
389
390         Incidentally, we also don't need to invalidate caches for changes
391         to attributes that don't have an ownerElement.
392
393         No new tests. This is strictly a performance improvement.
394
395         * dom/Attr.cpp:
396         (WebCore::Attr::setValue):
397         (WebCore::Attr::childrenChanged):
398         * dom/Element.cpp:
399         (WebCore::Element::attributeChanged):
400         * dom/Node.cpp:
401         (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
402         * dom/Node.h:
403         (Node):
404
405 2012-04-22  Robert Hogan  <robert@webkit.org>
406
407         CSS 2.1 failure: inline-table-001 fails
408         https://bugs.webkit.org/show_bug.cgi?id=84167
409
410         Reviewed by Julien Chaffraix.
411
412         Override lastLineBoxBaseline() in RenderTable so that it picks up the baseline
413         of the text in the first row of the table. This allows inline tables to find the
414         correct baseline to align to.
415
416         Tests:
417                 css2.1/20110323/inline-table-001.htm
418                 css2.1/20110323/inline-table-002a.htm
419                 css2.1/20110323/inline-table-003.htm
420                 fast/css/empty-cell-baseline.html
421
422         * rendering/RenderTable.cpp:
423         (WebCore::getLineBoxBaseline):
424         (WebCore):
425         (WebCore::RenderTable::lastLineBoxBaseline):
426         (WebCore::RenderTable::firstLineBoxBaseline):
427         * rendering/RenderTable.h:
428         (RenderTable):
429         * rendering/RenderTableSection.cpp:
430         (WebCore::RenderTableSection::firstLineBoxBaseline): if a cell is empty it cannot provide a 
431           baseline. Tested by fast/css/empty-cell-baseline.html
432
433 2012-05-16  Joshua Bell  <jsbell@chromium.org>
434
435         IndexedDB: Rename valid/finished methods to isValid/isFinished to match coding standard
436         https://bugs.webkit.org/show_bug.cgi?id=86655
437
438         Reviewed by Tony Chang.
439
440         No new tests - no functional changes.
441
442         * Modules/indexeddb/IDBKey.h:
443         (WebCore::IDBKey::isValid): valid() => isValid()
444         * Modules/indexeddb/IDBObjectStore.cpp:
445         (WebCore::IDBObjectStore::deleteFunction):
446         (WebCore::IDBObjectStore::index):
447         (WebCore::IDBObjectStore::transactionFinished):
448         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
449         (WebCore::IDBObjectStoreBackendImpl::put):
450         (WebCore::IDBObjectStoreBackendImpl::putInternal):
451         (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
452         * Modules/indexeddb/IDBRequest.cpp:
453         (WebCore::IDBRequest::onSuccess):
454         * Modules/indexeddb/IDBTransaction.cpp:
455         (WebCore::IDBTransaction::isFinished): finished() => isFinished()
456         * Modules/indexeddb/IDBTransaction.h:
457         * inspector/InspectorIndexedDBAgent.cpp:
458         (WebCore):
459
460 2012-05-16  Jeffrey Pfau  <jpfau@apple.com>
461
462         ImageLoader can still dispatch beforeload events for ImageDocuments
463         https://bugs.webkit.org/show_bug.cgi?id=86658
464         <rdar://problem/11465863>
465
466         Reviewed by Brady Eidson.
467
468         Prevent flags regarding sending beforeload events from being set on ImageDocuments.
469
470         No new tests; testing framework doesn't allow for testing ImageDocuments with injected JavaScript.
471
472         * loader/ImageLoader.cpp:
473         (WebCore::ImageLoader::updateFromElement):
474
475 2012-05-16  Julien Chaffraix  <jchaffraix@webkit.org>
476
477         layerX/layerY warning should be removed
478         https://bugs.webkit.org/show_bug.cgi?id=86264
479
480         Reviewed by James Robinson.
481
482         Covered by: fast/dom/Window/window-xy-properties.html
483                     fast/events/init-events.html
484                     fast/events/mouse-relative-position.html
485                     fast/events/mouseclick-target-and-positioning.html
486                     fast/events/simulated-click-coords.html
487                     jquery/event.html
488
489         This change just removes the warning pending proper investigation.
490
491         Longer explanation: The layerX/layerY warning was added prematurely
492         as we didn't assess the web-compatibility potential breakage vs the
493         maintenance cost. There is also not readily available replacement.
494
495         * dom/MouseRelatedEvent.cpp:
496         (WebCore::MouseRelatedEvent::layerX):
497         (WebCore::MouseRelatedEvent::layerY):
498         * dom/UIEvent.cpp:
499         (WebCore::UIEvent::layerX):
500         (WebCore::UIEvent::layerY):
501         * dom/UIEvent.h:
502         Removed warnDeprecatedLayerXYUsage and all the associated calls.
503
504 2012-05-16  Joshua Bell  <jsbell@chromium.org>
505
506         IndexedDB: Use accessors for backing store / database id in store/index backends
507         https://bugs.webkit.org/show_bug.cgi?id=86652
508
509         Reviewed by Tony Chang.
510
511         Hide the private members m_backingStore and m_databaseId of IDBObjectStoreBackendImpl
512         and IDBIndexBackendImpl behind accessors. This is preparation for removing these
513         members and only holding references to the IDBDatabaseBackendImpl: webkit.org/b/83074
514
515         No new tests - no functional changes.
516
517         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
518         (WebCore::IDBIndexBackendImpl::openCursorInternal):
519         (WebCore::IDBIndexBackendImpl::countInternal):
520         (WebCore::IDBIndexBackendImpl::getInternal):
521         (WebCore::IDBIndexBackendImpl::getByRangeInternal):
522         (WebCore::IDBIndexBackendImpl::getKeyInternal):
523         (WebCore::IDBIndexBackendImpl::getKeyByRangeInternal):
524         (WebCore::IDBIndexBackendImpl::addingKeyAllowed):
525         * Modules/indexeddb/IDBIndexBackendImpl.h:
526         (WebCore::IDBIndexBackendImpl::backingStore): Added.
527         (WebCore::IDBIndexBackendImpl::databaseId): Added.
528         (IDBIndexBackendImpl):
529         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
530         (WebCore::IDBObjectStoreBackendImpl::getByRangeInternal):
531         (WebCore::IDBObjectStoreBackendImpl::getInternal):
532         (WebCore::IDBObjectStoreBackendImpl::putInternal):
533         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
534         (WebCore::IDBObjectStoreBackendImpl::clearInternal):
535         (WebCore):
536         (WebCore::IDBObjectStoreBackendImpl::createIndex):
537         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
538         (WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal):
539         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
540         (WebCore::IDBObjectStoreBackendImpl::countInternal):
541         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
542         (WebCore::IDBObjectStoreBackendImpl::genAutoIncrementKey):
543         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
544         (WebCore::IDBObjectStoreBackendImpl::backingStore): Added.
545         (WebCore::IDBObjectStoreBackendImpl::databaseId): Added.
546         (IDBObjectStoreBackendImpl):
547
548 2012-05-15  Peter Kasting  <pkasting@google.com>
549
550         Malformed GIF can cause decoder to read off end of heap buffer
551         https://bugs.webkit.org/show_bug.cgi?id=86531
552
553         Reviewed by Adam Barth.
554
555         Test: fast/images/read-past-end-of-buffer.html
556         This test is only expected to catch problems if run under Address
557         Sanitizer or a similar memory-checking utility.
558
559         * platform/image-decoders/gif/GIFImageReader.cpp:
560         (GIFImageReader::read):
561
562 2012-05-16  Varun Jain  <varunjain@google.com>
563
564         [chromium] No modifier flags (shift/ctrl/alt) in drag&drop events on chromium linux
565         https://bugs.webkit.org/show_bug.cgi?id=86236
566
567         Reviewed by Tony Chang.
568
569         ManualTests: ManualTests/chromium/modifiers-during-drag-and-drop.html
570
571         * page/DragController.cpp:
572         (WebCore::createMouseEvent):
573         * platform/DragData.cpp:
574         (WebCore):
575         (WebCore::DragData::modifierKeyState):
576         * platform/DragData.h:
577         (DragData):
578         * platform/chromium/ChromiumDataObject.cpp:
579         (WebCore::ChromiumDataObject::ChromiumDataObject):
580         * platform/chromium/ChromiumDataObject.h:
581         (WebCore::ChromiumDataObject::modifierKeyState):
582         (WebCore::ChromiumDataObject::setModifierKeyState):
583         (ChromiumDataObject):
584         * platform/chromium/DragDataChromium.cpp:
585         (WebCore::DragData::modifierKeyState):
586         (WebCore):
587
588 2012-05-16  Jer Noble  <jer.noble@apple.com>
589
590         <video> elements with no video tracks report false for webkitSupportsFullscreen.
591         https://bugs.webkit.org/show_bug.cgi?id=86650
592
593         Reviewed by Eric Carlson.
594
595         No new tests; updated media/media-fullscreen-inline.html.
596
597         With the new Full Screen API, the restriction that only video elements with
598         video tracks can enter full screen seems arbitrary. Some media types will
599         occasionally determine they have video tracks long after loadedmetadata, which
600         breaks websites who check for webkitSupportsFullscreen(). Relax the restriction
601         on webkitSupportsFullscreen() for ports where the Full Screen API is enabled and
602         supported so as to no longer require hasVideo().
603
604         * html/HTMLVideoElement.cpp:
605         (WebCore::HTMLVideoElement::supportsFullscreen):
606
607 2012-05-16  Andreas Kling  <kling@webkit.org>
608
609         Avoid reparsing the style attribute when cloning elements.
610         <http://webkit.org/b/86574>
611
612         Reviewed by Antti Koivisto.
613
614         Refactor cloning of attributes a bit to dodge the styleAttr reparse previously
615         caused by ElementAttributeData::setAttributes().
616
617         Introduced Element::cloneDataFromElement() which takes care of cloning the
618         ElementAttributeData as well as "non-attribute properties" (which is currently
619         specific to HTMLInputElement.)
620
621         Also includes some additional dodging of attribute vector traversal to find
622         old/new 'id' and 'name' attributes.
623
624         I'm seeing a ~10% improvement on PerformanceTests/DOM/CloneNodes locally.
625
626         * dom/Document.cpp:
627         (WebCore::Document::importNode):
628         * dom/Element.cpp:
629         (WebCore::Element::cloneElementWithoutChildren):
630         (WebCore::Element::cloneAttributesFromElement):
631         (WebCore::Element::cloneDataFromElement):
632         * dom/Element.h:
633         (WebCore::Element::copyNonAttributePropertiesFromElement):
634         * dom/ElementAttributeData.cpp:
635         (WebCore::ElementAttributeData::cloneDataFrom):
636         * dom/ElementAttributeData.h:
637         (ElementAttributeData):
638         * dom/Node.h:
639         * dom/StyledElement.cpp:
640         (WebCore::StyledElement::styleAttributeChanged):
641         (WebCore::StyledElement::parseAttribute):
642         * dom/StyledElement.h:
643         * editing/ReplaceNodeWithSpanCommand.cpp:
644         (WebCore::swapInNodePreservingAttributesAndChildren):
645         * html/HTMLElement.cpp:
646         * html/HTMLInputElement.cpp:
647         (WebCore::HTMLInputElement::copyNonAttributePropertiesFromElement):
648         * html/HTMLInputElement.h:
649         * inspector/DOMPatchSupport.cpp:
650         (WebCore::DOMPatchSupport::innerPatchNode):
651         * inspector/InspectorDOMAgent.cpp:
652         (WebCore::InspectorDOMAgent::setNodeName):
653         * svg/SVGUseElement.cpp:
654         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
655         (WebCore::SVGUseElement::transferUseAttributesToReplacedElement):
656
657 2012-05-16  Brent Fulgham  <bfulgham@webkit.org>
658
659         [WinCairo] Unreviewed build change after r115385.  Several Cairo
660         image routines were modified to use new wrapper classes, but the
661         relevant WinCairo sources were not updated to match.
662
663         * WebCore.vcproj/WebCore.vcproj:
664         * platform/graphics/win/ImageCairoWin.cpp:
665         (WebCore::BitmapImage::create):
666         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
667         * platform/win/DragImageCairoWin.cpp:
668         (WebCore::createDragImageFromImage):
669
670 2012-05-16  Tim Horton  <timothy_horton@apple.com>
671
672         Scrollbar layers should respect accelerated drawing setting
673         https://bugs.webkit.org/show_bug.cgi?id=86644
674         <rdar://problem/11462038>
675
676         Reviewed by Simon Fraser.
677
678         When creating scrollbar layers, pass through the accelerated drawing setting.
679
680         No new tests.
681
682         * rendering/RenderLayerCompositor.cpp:
683         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
684
685 2012-05-16  Tim Horton  <timothy_horton@apple.com>
686
687         FrameView::scrollContentsFastPath should use painted area to determine whether to drop out of the fast path
688         https://bugs.webkit.org/show_bug.cgi?id=86651
689         <rdar://problem/11459243>
690
691         Reviewed by Simon Fraser.
692
693         Previously, we decided to fall out of the fast scrolling path by the number of fixed-position elements
694         on the page. This was less than ideal if a single fixed position element took up a significant portion
695         of the page, or if there were many small, cheap-to-paint fixed elements.
696
697         Instead, we should use the fast path if less than 50% of the page will be repainted by fixed-position
698         elements, and otherwise fall back to the slow path.
699
700         I've tested a few different thresholds with an internal test; 50% seems to work relatively well,
701         but the ideal value is hard to determine and likely depends on hardware.
702
703         No new tests, performance improvement with few large fixed-position objects or many small ones.
704
705         * page/FrameView.cpp:
706         (WebCore::FrameView::scrollContentsFastPath):
707
708 2012-05-16  David Reveman  <reveman@chromium.org>
709
710         [Chromium] Use ThrottledTextureUploader with threaded compositing.
711         https://bugs.webkit.org/show_bug.cgi?id=85848
712
713         Reviewed by Adrienne Walker.
714
715         Switch to ThrottledUploader in CCThreadProxy.
716
717         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
718
719 2012-05-15  Emil A Eklund  <eae@chromium.org>
720
721         Change ascents and descent back to ints for now
722         https://bugs.webkit.org/show_bug.cgi?id=86518
723
724         Reviewed by Eric Seidel.
725
726         Change ascents and descent calculation back to integers for now as it
727         looks like we'll need to support both the 1/60 and 1/1 implementations of
728         FractionalLayoutUnit for the immediate future to ensure that text is
729         rendered at the same offset and with the height regardless of the
730         ENABLE_SUBPIXEL_LAYOUT flag.
731
732         This ensures that most websites will look the same at 100% zoom
733         regardless of the flag and also allows us to the same test expectations
734         for the vast majority of layout tests.
735
736         Eventually we want to move those back to FractionalLayoutUnits as that
737         will result in more correct rendering.
738
739         No new tests, no change in functionality.
740
741         * rendering/InlineFlowBox.cpp:
742         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
743         * rendering/RootInlineBox.cpp:
744         (WebCore::setAscentAndDescent):
745         (WebCore::RootInlineBox::ascentAndDescentForBox):
746         * rendering/RootInlineBox.h:
747         (RootInlineBox):
748
749 2012-05-16  Ken Buchanan  <kenrb@chromium.org>
750
751         Crash due to first-letter not getting computed on RenderTableCell
752         https://bugs.webkit.org/show_bug.cgi?id=86133
753
754         Reviewed by Abhishek Arya.
755
756         RenderTableCell overrides RenderBlock::layout() but doesn't call
757         updateFirstLetter() in it. This is normally not a problem because
758         updateFirstLetter() gets called during preferred logical width
759         computation, but there exist rare occasions when layout of the table
760         cell happens without preferred logical widths being dirty, in which
761         case the first-letter update can be skipped.
762
763         This patch adds a call to updateFirstLetter() to
764         RenderTableCell::layout(). This ensures that the first-letter is up
765         to date before commencing block layout.
766
767         * rendering/RenderTableCell.cpp:
768         (WebCore::RenderTableCell::layout)
769
770 2012-05-16  Mikhail Naganov  <mnaganov@chromium.org>
771
772         Avoid jumpscroll when entering new text in a multi-line editor.
773         https://bugs.webkit.org/show_bug.cgi?id=82875
774
775         Reviewed by Ryosuke Niwa.
776
777         Scroll caret to the edge of the viewport in case if a line break or a paragraph
778         separator is inserted at the end of a multi-line editor.  This avoids
779         undesirable jumpscroll in cases when there is content under the editor.
780
781         Tests: editing/input/scroll-to-edge-if-line-break-at-end-of-document-contenteditable.html
782                editing/input/scroll-to-edge-if-line-break-at-end-of-document-textarea.html
783                editing/input/scroll-to-edge-if-paragraph-separator-at-end-of-document-contenteditable.html
784
785         * editing/Editor.cpp:
786         (WebCore::Editor::insertLineBreak):
787         (WebCore::Editor::insertParagraphSeparator):
788         (WebCore::Editor::revealSelectionAfterEditingOperation):
789         * editing/Editor.h:
790         (Editor):
791
792 2012-05-16  Vsevolod Vlasov  <vsevik@chromium.org>
793
794         Web Inspector: Pressing esc after requesting snippet creation should remove snippet.
795         https://bugs.webkit.org/show_bug.cgi?id=86639
796
797         Reviewed by Pavel Feldman.
798
799         Added committed parameter to NavigatorView.rename() callback.
800
801         * inspector/front-end/NavigatorView.js:
802         (WebInspector.NavigatorView.prototype.rename.commitHandler):
803         (WebInspector.NavigatorView.prototype.rename.cancelHandler):
804         (WebInspector.NavigatorView.prototype.rename.afterEditing):
805         * inspector/front-end/ScriptsNavigator.js:
806         * inspector/front-end/ScriptsPanel.js:
807         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
808         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
809
810 2012-05-16  Abhishek Arya  <inferno@chromium.org>
811
812         Missing RenderApplet cast check in HTMLAppletElement::renderWidgetForJSBindings.
813         https://bugs.webkit.org/show_bug.cgi?id=86627
814
815         Reviewed by Andreas Kling.
816
817         Test: java/inline-applet-crash.html
818
819         * html/HTMLAppletElement.cpp:
820         (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
821
822 2012-05-16  Pavel Feldman  <pfeldman@chromium.org>
823
824         Web Inspector: extract CompositeUISourceCodeProvider from DebuggerScriptMapping.
825         https://bugs.webkit.org/show_bug.cgi?id=86634
826
827         Reviewed by Vsevolod Vlasov.
828
829         Extract refactoring.
830
831         * inspector/front-end/DebuggerScriptMapping.js:
832         (WebInspector.DebuggerScriptMapping):
833         (WebInspector.DebuggerScriptMapping.prototype.uiSourceCodeProviders):
834         (WebInspector.DebuggerScriptMapping.prototype._parsedScriptSource):
835         * inspector/front-end/ScriptsPanel.js:
836         (WebInspector.ScriptsPanel.prototype._loadUISourceCodes):
837         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
838         (WebInspector.CompositeUISourceCodeProvider):
839         (WebInspector.CompositeUISourceCodeProvider.prototype._registerUISourceCodeProvider):
840         (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeAdded):
841         (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeReplaced):
842         (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeRemoved):
843         (WebInspector.CompositeUISourceCodeProvider.prototype.uiSourceCodes):
844         * inspector/front-end/UISourceCode.js:
845         (WebInspector.UISourceCodeProvider.prototype.uiSourceCodes):
846         (WebInspector.UISourceCodeProvider.prototype.addEventListener):
847         (WebInspector.UISourceCodeProvider.prototype.removeEventListener):
848
849 2012-05-16  Alexander Pavlov  <apavlov@chromium.org>
850
851         Web Inspector: Double Clicking on "No watch expressions" should add an expression
852         https://bugs.webkit.org/show_bug.cgi?id=86631
853
854         Reviewed by Vsevolod Vlasov.
855
856         A double-click listener for the section element adds a new watch expression if the correct element
857         has been clicked.
858         Drive-by: do not persist deleted (null) watch expressions.
859
860         * inspector/front-end/WatchExpressionsSidebarPane.js:
861         (WebInspector.WatchExpressionsSection.prototype._sectionDoubleClick):
862         (WebInspector.WatchExpressionsSection.prototype.updateExpression):
863
864 2012-05-16  Vsevolod Vlasov  <vsevik@chromium.org>
865
866         Web Inspector: Support script snippets saving.
867         https://bugs.webkit.org/show_bug.cgi?id=86632
868
869         Reviewed by Pavel Feldman.
870
871         Added SnippetJavaScriptSource extending JavaScriptSource and overriding isEditable() and commitWorkingCopy() methods.
872         ScriptSnippetModel now creates instances of this new class for snippets.
873         Also maps in ScriptSnippetModel simplified.
874
875         * inspector/front-end/JavaScriptSource.js:
876         (WebInspector.JavaScriptSource.prototype.commitWorkingCopy):
877         (WebInspector):
878         * inspector/front-end/JavaScriptSourceFrame.js:
879         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
880         * inspector/front-end/ScriptSnippetModel.js:
881         (WebInspector.ScriptSnippetModel):
882         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
883         (WebInspector.ScriptSnippetModel.prototype.deleteScriptSnippet):
884         (WebInspector.ScriptSnippetModel.prototype.renameScriptSnippet):
885         (WebInspector.ScriptSnippetModel.prototype.setScriptSnippetContent):
886         (WebInspector.ScriptSnippetModel.prototype._uiSourceCodeList):
887         (WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
888         (WebInspector.SnippetJavaScriptSource):
889         (WebInspector.SnippetJavaScriptSource.prototype.isEditable):
890         (WebInspector.SnippetJavaScriptSource.prototype.commitWorkingCopy):
891         (WebInspector.SnippetJavaScriptSource.prototype.get snippetId):
892         * inspector/front-end/ScriptsPanel.js:
893         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
894         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
895         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
896
897 2012-05-16  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
898
899         [EFL] Memory leak in RenderThemeEfl
900         https://bugs.webkit.org/show_bug.cgi?id=86609
901
902         Reviewed by Martin Robinson.
903
904         Fix a memory leak by freeing the cairo surface with
905         cairo_surface_destroy.
906
907         * platform/efl/RenderThemeEfl.cpp:
908         (WebCore::RenderThemeEfl::cacheThemePartFlush):
909
910 2012-05-16  Alexei Filippov  <alexeif@chromium.org>
911
912         Web Inspector: Speedup heap snapshot postprocessing
913         https://bugs.webkit.org/show_bug.cgi?id=86635
914
915         Reviewed by Yury Semikhatsky.
916
917         * inspector/front-end/HeapSnapshot.js:
918         (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
919
920 2012-05-16  Alexander Pavlov  <apavlov@chromium.org>
921
922         Unreviewed, followup for r117273 that fixes the Web Inspector's Computed Style pane layout.
923
924         * inspector/front-end/elementsPanel.css:
925         (.styles-section.computed-style.expanded .properties > li):
926         (.styles-section.computed-style.expanded .properties > li .webkit-css-property):
927
928 2012-05-16  Andrey Kosyakov  <caseq@chromium.org>
929
930         Web Inspector: [Extensions API] expose evaluateOptions in audit formatters
931         https://bugs.webkit.org/show_bug.cgi?id=86617
932
933         Reviewed by Pavel Feldman.
934
935         Test: inspector/extensions/extensions-audits-content-script.html
936
937         - apply extension-specific audit formatters earlier (in ExtensionAduitCategory, not along with the rest in AuditFormatters);
938         - use ExtensionServer.evaluate() to handle evaluateOptions instead of PageAgent.evaluate();
939
940         * inspector/front-end/AuditFormatters.js: Move node and object formatters to ExtensionAuditCategory.
941         (WebInspector.partiallyApplyFormatters): Added a method to traverse formatters tree and apply formatters that are passed as input.
942         * inspector/front-end/ExtensionAuditCategory.js:
943         (WebInspector.ExtensionAuditCategory): Pass extensionOrigin.
944         (WebInspector.ExtensionAuditCategoryResults.prototype._addNode): Apply extensions formatters before adding the result.
945         (WebInspector.ExtensionAuditCategoryResults.prototype._addResult):
946         (WebInspector.ExtensionAuditCategoryResults.prototype.evaluate): moved from AuditFormatters.
947         (WebInspector.ExtensionAuditFormatters.object.onEvaluate):
948         (WebInspector.ExtensionAuditFormatters.object):
949         (WebInspector.ExtensionAuditFormatters.node.onNodeAvailable):
950         (WebInspector.ExtensionAuditFormatters.node.onEvaluate):
951         (WebInspector.ExtensionAuditFormatters.node):
952         * inspector/front-end/ExtensionServer.js:
953         (WebInspector.ExtensionServer.prototype._onAddAuditCategory): Plumb extensionOrigin through to audit category.
954
955 2012-05-16  Donald Carr  <donald.carr@nokia.com>
956
957         Fixes the build with Qt 5 HEAD
958
959         Reviewed by Csaba Osztrogonác.
960
961         * WebCore.pri:
962         * platform/graphics/texmap/TextureMapperGL.cpp:
963         * plugins/qt/PluginViewQt.cpp:
964
965 2012-05-16  Rob Buis  <rbuis@rim.com>
966
967         SVGSVGElement checkIntersection and checkEnclosure Mem corruption
968         https://bugs.webkit.org/show_bug.cgi?id=67923
969
970         Reviewed by Nikolas Zimmermann.
971
972         Only call checkIntersection/checkEnclosure when we have a valid renderer.
973
974         Test: svg/custom/intersection-list-null.svg
975
976         * svg/SVGSVGElement.cpp:
977         (WebCore::SVGSVGElement::checkIntersection):
978         (WebCore::SVGSVGElement::checkEnclosure):
979
980 2012-05-16  Simon Hausmann  <simon.hausmann@nokia.com>
981
982         Unreviewed, rolling out r110699.
983         http://trac.webkit.org/changeset/110699
984         https://bugs.webkit.org/show_bug.cgi?id=80982
985
986         Not needed anymore and broke modal event loops
987
988         * platform/qt/RunLoopQt.cpp:
989         (WebCore::RunLoop::TimerObject::TimerObject):
990         (WebCore::RunLoop::TimerObject::performWork):
991         (RunLoop::TimerObject):
992
993 2012-05-16  Pavel Feldman  <pfeldman@chromium.org>
994
995         Web Inspector: split ScriptMapping into UISourceCodeProvider and SourceMapping.
996         https://bugs.webkit.org/show_bug.cgi?id=86616
997
998         Reviewed by Vsevolod Vlasov.
999
1000         This change simply splits the interface.
1001
1002         * WebCore.gypi:
1003         * WebCore.vcproj/WebCore.vcproj:
1004         * inspector/compile-front-end.py:
1005         * inspector/front-end/CompilerScriptMapping.js:
1006         (WebInspector.CompilerScriptMapping.prototype.get uiSourceCodes):
1007         (WebInspector.CompilerScriptMapping.prototype.reset):
1008         * inspector/front-end/DebuggerModel.js:
1009         * inspector/front-end/DebuggerResourceBinding.js:
1010         (WebInspector.DebuggerResourceBinding):
1011         (WebInspector.DebuggerResourceBinding.prototype._uiSourceCodeForResource):
1012         * inspector/front-end/DebuggerScriptMapping.js:
1013         (WebInspector.DebuggerScriptMapping):
1014         (WebInspector.DebuggerScriptMapping.prototype.uiSourceCodes):
1015         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeAdded):
1016         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeReplaced):
1017         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeRemoved):
1018         * inspector/front-end/FilteredItemSelectionDialog.js:
1019         (WebInspector.OpenScriptDialog):
1020         (WebInspector.OpenScriptDialog.install):
1021         (WebInspector.OpenScriptDialog._show):
1022         * inspector/front-end/PresentationConsoleMessageHelper.js:
1023         (WebInspector.PresentationConsoleMessageHelper):
1024         (WebInspector.PresentationConsoleMessageHelper.prototype._consoleCleared):
1025         * inspector/front-end/ResourceScriptMapping.js:
1026         (WebInspector.ResourceScriptMapping.prototype.uiSourceCodes):
1027         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAdded):
1028         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeReplaced):
1029         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeRemoved):
1030         * inspector/front-end/Script.js:
1031         * inspector/front-end/ScriptSnippetModel.js:
1032         (WebInspector.ScriptSnippetModel.prototype._uiSourceCodes):
1033         (WebInspector.SnippetScriptMapping.prototype.uiSourceCodes):
1034         (WebInspector.SnippetScriptMapping.prototype._fireUISourceCodeAdded):
1035         (WebInspector.SnippetScriptMapping.prototype._fireUISourceCodeRemoved):
1036         * inspector/front-end/ScriptsPanel.js:
1037         * inspector/front-end/ScriptsSearchScope.js:
1038         (WebInspector.ScriptsSearchScope):
1039         (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
1040         * inspector/front-end/SourceMapping.js: Renamed from Source/WebCore/inspector/front-end/ScriptMapping.js.
1041         * inspector/front-end/UISourceCode.js:
1042         (WebInspector.UISourceCodeProvider):
1043         (WebInspector.UISourceCodeProvider.prototype.uiSourceCodes):
1044         (WebInspector.UILocation):
1045         (WebInspector.UILocation.prototype.uiLocationToRawLocation):
1046         * inspector/front-end/WebKit.qrc:
1047         * inspector/front-end/inspector.html:
1048
1049 2012-05-16  Vsevolod Vlasov  <vsevik@chromium.org>
1050
1051         Web Inspector: Implement snippet creation/renaming in ScriptsNavigator.
1052         https://bugs.webkit.org/show_bug.cgi?id=82622
1053
1054         Reviewed by Pavel Feldman.
1055
1056         Implemented snippet creation and renaming.
1057         Added TitleChanged event to UISourceCode.
1058
1059         * inspector/front-end/NavigatorOverlayController.js:
1060         (WebInspector.NavigatorOverlayController.prototype._containingElementFocused):
1061         (WebInspector.NavigatorOverlayController.prototype.isNavigatorPinned):
1062         (WebInspector.NavigatorOverlayController.prototype.isNavigatorHidden):
1063         * inspector/front-end/NavigatorView.js:
1064         (WebInspector.NavigatorView.prototype._uiSourceCodeTitleChanged):
1065         (WebInspector.NavigatorView.prototype._updateScriptTitle):
1066         (WebInspector.NavigatorView.prototype._addUISourceCodeListeners):
1067         (WebInspector.NavigatorView.prototype._removeUISourceCodeListeners):
1068         (WebInspector.NavigatorView.prototype._fileRenamed):
1069         (WebInspector.NavigatorScriptTreeElement.prototype.onattach):
1070         * inspector/front-end/ScriptSnippetModel.js:
1071         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
1072         * inspector/front-end/ScriptsNavigator.js:
1073         (WebInspector.ScriptsNavigator):
1074         (WebInspector.ScriptsNavigator.prototype._snippetsNavigatorViewForUISourceCode):
1075         (WebInspector.ScriptsNavigator.prototype.addUISourceCode):
1076         (WebInspector.ScriptsNavigator.prototype.isScriptSourceAdded):
1077         (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
1078         (WebInspector.ScriptsNavigator.prototype.replaceUISourceCode):
1079         (WebInspector.ScriptsNavigator.prototype.rename):
1080         (WebInspector.ScriptsNavigator.prototype._fileRenamed):
1081         (WebInspector.ScriptsNavigator.prototype._snippetCreationRequested):
1082         (WebInspector.SnippetsNavigatorView.prototype._handleCreateSnippet):
1083         (WebInspector.SnippetsNavigatorView.prototype._snippetCreationRequested):
1084         * inspector/front-end/ScriptsPanel.js:
1085         (WebInspector.ScriptsPanel.prototype.set _hideDebuggerSidebar):
1086         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
1087         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
1088         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
1089         * inspector/front-end/TabbedEditorContainer.js:
1090         (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
1091         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
1092         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeTitleChanged):
1093         * inspector/front-end/UISourceCode.js:
1094         (WebInspector.UISourceCode.prototype.urlChanged):
1095
1096 2012-05-16  Alexander Pavlov  <apavlov@chromium.org>
1097
1098         Web Inspector: gradient properties are painful to inspect / author.
1099         https://bugs.webkit.org/show_bug.cgi?id=86379
1100
1101         Reviewed by Pavel Feldman.
1102
1103         The CSS styles layout has been changed to allow property values to wrap onto subsequent lines
1104         to let the users see the entire value text.
1105
1106         * inspector/front-end/StylesSidebarPane.js:
1107         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.): Avoid line breaks between the color swatch and value.
1108         * inspector/front-end/elementsPanel.css:
1109         (.styles-section .properties li.not-parsed-ok img.exclamation-mark):
1110         (.styles-section .properties li):
1111         (.styles-section .properties li .webkit-css-property):
1112         (.styles-section.expanded .properties > li):
1113         (.styles-section .properties > li .webkit-css-property):
1114         (.styles-section .properties > li.child-editing):
1115         (.styles-section .properties > li.child-editing .webkit-css-property):
1116         (.styles-section .properties .enabled-button):
1117
1118 2012-05-16  Yury Semikhatsky  <yurys@chromium.org>
1119
1120         Web Inspector: rename ProfileView.js to CPUProfileView.js
1121         https://bugs.webkit.org/show_bug.cgi?id=86612
1122
1123         Reviewed by Pavel Feldman.
1124
1125         Renamed ProfileView.js to CPUProfileView.js to match the file content.
1126
1127         * WebCore.gypi:
1128         * WebCore.vcproj/WebCore.vcproj:
1129         * inspector/compile-front-end.py:
1130         * inspector/front-end/CPUProfileView.js: Renamed from Source/WebCore/inspector/front-end/ProfileView.js.
1131         (WebInspector.CPUProfileView.profileCallback):
1132         (WebInspector.CPUProfileView.prototype.get statusBarItems):
1133         (WebInspector.CPUProfileView.prototype.get profile):
1134         (WebInspector.CPUProfileView.prototype.set profile):
1135         (WebInspector.CPUProfileView.prototype.get bottomUpProfileDataGridTree):
1136         (WebInspector.CPUProfileView.prototype.get topDownProfileDataGridTree):
1137         (WebInspector.CPUProfileView.prototype.get currentTree):
1138         (WebInspector.CPUProfileView.prototype.set currentTree):
1139         (WebInspector.CPUProfileView.prototype.willHide):
1140         (WebInspector.CPUProfileView.prototype.refresh):
1141         (WebInspector.CPUProfileView.prototype.refreshVisibleData):
1142         (WebInspector.CPUProfileView.prototype.refreshShowAsPercents):
1143         (WebInspector.CPUProfileView.prototype.searchCanceled):
1144         (WebInspector.CPUProfileView.prototype.performSearch.matchesQuery):
1145         (WebInspector.CPUProfileView.prototype.performSearch):
1146         (WebInspector.CPUProfileView.prototype.jumpToFirstSearchResult):
1147         (WebInspector.CPUProfileView.prototype.jumpToLastSearchResult):
1148         (WebInspector.CPUProfileView.prototype.jumpToNextSearchResult):
1149         (WebInspector.CPUProfileView.prototype.jumpToPreviousSearchResult):
1150         (WebInspector.CPUProfileView.prototype.showingFirstSearchResult):
1151         (WebInspector.CPUProfileView.prototype.showingLastSearchResult):
1152         (WebInspector.CPUProfileView.prototype._jumpToSearchResult):
1153         (WebInspector.CPUProfileView.prototype._changeView.set else):
1154         (WebInspector.CPUProfileView.prototype._focusClicked):
1155         (WebInspector.CPUProfileView.prototype._excludeClicked):
1156         (WebInspector.CPUProfileView.prototype._resetClicked):
1157         (WebInspector.CPUProfileView.prototype._dataGridNodeSelected):
1158         (WebInspector.CPUProfileView.prototype._dataGridNodeDeselected):
1159         (WebInspector.CPUProfileView.prototype._sortProfile):
1160         (WebInspector.CPUProfileView.prototype._assignParentsInProfile):
1161         (WebInspector.CPUProfileType):
1162         (WebInspector.CPUProfileType.prototype.get buttonTooltip):
1163         (WebInspector.CPUProfileType.prototype.buttonClicked):
1164         (WebInspector.CPUProfileType.prototype.get treeItemTitle):
1165         (WebInspector.CPUProfileType.prototype.get description):
1166         (WebInspector.CPUProfileType.prototype.isRecordingProfile):
1167         (WebInspector.CPUProfileType.prototype.startRecordingProfile):
1168         (WebInspector.CPUProfileType.prototype.stopRecordingProfile):
1169         (WebInspector.CPUProfileType.prototype.setRecordingProfile):
1170         (WebInspector.CPUProfileType.prototype.createSidebarTreeElementForProfile):
1171         (WebInspector.CPUProfileType.prototype.createView):
1172         (WebInspector.CPUProfileType.prototype.createTemporaryProfile):
1173         (WebInspector.CPUProfileType.prototype.createProfile):
1174         * inspector/front-end/HeapSnapshotView.js:
1175         (WebInspector.HeapSnapshotView.prototype.performSearch.matchesByName):
1176         * inspector/front-end/WebKit.qrc:
1177         * inspector/front-end/inspector.html:
1178
1179 2012-05-16  Arpita Bahuguna  <arpitabahuguna@gmail.com>
1180
1181         "border: collapse" + "display: none" rows in the tbody while having thead or tfoot doesn't render the opposite border
1182         https://bugs.webkit.org/show_bug.cgi?id=67877
1183
1184         Reviewed by Antti Koivisto.
1185
1186         Test: fast/css/table-collapsed-borders.html
1187
1188         * rendering/RenderTableCell.cpp:
1189         (WebCore::RenderTableCell::computeCollapsedBeforeBorder):
1190         When getting the previous row group's after border, pass SkipEmptySections as the second param
1191         to the RenderTable::sectionAbove() call. Thus if the currSection is the top most section of the
1192         table passing SkipEmptySections to sectionAbove() would return null which should be the expected
1193         behavior.
1194
1195         (WebCore::RenderTableCell::computeCollapsedAfterBorder):
1196         When getting the following row group's before border, pass SkipEmptySections as the second param
1197         to the RenderTable::sectionBelow() call. Thus if the currSection is the bottom most section of the
1198         table passing SkipEmptySections to sectionBelow() would return null which should be the expected
1199         behavior.
1200
1201 2012-05-16  Pavel Feldman  <pfeldman@chromium.org>
1202
1203         Web Inspector: follow up to r117267 - fixing typo and removing unnecessary dispatch.
1204         https://bugs.webkit.org/show_bug.cgi?id=86613
1205
1206         Reviewed by Vsevolod Vlasov.
1207
1208         * inspector/front-end/ResourceScriptMapping.js:
1209         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAdded):
1210         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeReplaced):
1211
1212 2012-05-16  Vsevolod Vlasov  <vsevik@chromium.org>
1213
1214         Web Inspector: Move edit/save script source logic to JavaScriptSource.
1215         https://bugs.webkit.org/show_bug.cgi?id=86604
1216
1217         Reviewed by Pavel Feldman.
1218
1219         Added working copy notion to UISourceCode.
1220         Moved DebuggerResourceBinding content edit calls to JavaScriptSource.
1221         Added WorkingCopyChanged event to UISourceCode.
1222
1223         * inspector/front-end/CompilerScriptMapping.js:
1224         * inspector/front-end/DebuggerResourceBinding.js:
1225         (WebInspector.DebuggerResourceBinding.prototype.canSetContent):
1226         * inspector/front-end/JavaScriptSource.js:
1227         (WebInspector.JavaScriptSource):
1228         (WebInspector.JavaScriptSource.prototype.breakpointStorageId):
1229         (WebInspector.JavaScriptSource.prototype.isEditable):
1230         (WebInspector.JavaScriptSource.prototype.commitWorkingCopy):
1231         (WebInspector):
1232         * inspector/front-end/JavaScriptSourceFrame.js:
1233         (WebInspector.JavaScriptSourceFrame.prototype.wasShown):
1234         (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
1235         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
1236         (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
1237         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
1238         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
1239         (WebInspector.JavaScriptSourceFrame.prototype._onMouseDown):
1240         * inspector/front-end/NavigatorView.js:
1241         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyChanged):
1242         (WebInspector.NavigatorView.prototype._uiSourceCodeContentChanged):
1243         (WebInspector.NavigatorView.prototype._updateScriptTitle):
1244         (WebInspector.NavigatorView.prototype._removeUISourceCode):
1245         (WebInspector.NavigatorView.prototype._addUISourceCodeListeners):
1246         (WebInspector.NavigatorView.prototype._removeUISourceCodeListeners):
1247         (WebInspector.NavigatorView.prototype.reset):
1248         * inspector/front-end/RawSourceCode.js:
1249         (WebInspector.RawSourceCode.prototype._createUISourceCode):
1250         * inspector/front-end/ScriptSnippetModel.js:
1251         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
1252         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
1253         * inspector/front-end/ScriptsPanel.js:
1254         * inspector/front-end/TabbedEditorContainer.js:
1255         (WebInspector.TabbedEditorContainer):
1256         (WebInspector.TabbedEditorContainer.prototype._titleForFile):
1257         (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
1258         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
1259         (WebInspector.TabbedEditorContainer.prototype._updateFileTitle.get if):
1260         (WebInspector.TabbedEditorContainer.prototype._updateFileTitle):
1261         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyChanged):
1262         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeContentChanged):
1263         * inspector/front-end/UISourceCode.js:
1264         (WebInspector.UISourceCode):
1265         (WebInspector.UISourceCode.prototype.contentChanged):
1266         (WebInspector.UISourceCode.prototype.isEditable):
1267         (WebInspector.UISourceCode.prototype.workingCopy):
1268         (WebInspector.UISourceCode.prototype.setWorkingCopy):
1269         (WebInspector.UISourceCode.prototype.isDirty):
1270         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
1271
1272 2012-05-16  Pavel Feldman  <pfeldman@chromium.org>
1273
1274         Web Inspector: get rid of UISourceCodeListChanged event.
1275         https://bugs.webkit.org/show_bug.cgi?id=86601
1276
1277         Reviewed by Vsevolod Vlasov.
1278
1279         There was unnecessary conversion between this event and UISourceCodeAdded/Removed/Replaced.
1280
1281         * inspector/front-end/CompilerScriptMapping.js:
1282         (WebInspector.CompilerScriptMapping.prototype.reset):
1283         * inspector/front-end/DebuggerScriptMapping.js:
1284         (WebInspector.DebuggerScriptMapping):
1285         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeAdded):
1286         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeReplaced):
1287         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeRemoved):
1288         * inspector/front-end/NavigatorView.js:
1289         * inspector/front-end/ResourceScriptMapping.js:
1290         (WebInspector.ResourceScriptMapping.prototype.addScript):
1291         (WebInspector.ResourceScriptMapping.prototype._handleUISourceCodeChanged):
1292         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAdded):
1293         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeReplaced):
1294         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeRemoved):
1295         (WebInspector.ResourceScriptMapping.prototype.reset):
1296         * inspector/front-end/ScriptMapping.js:
1297         * inspector/front-end/ScriptSnippetModel.js:
1298         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
1299         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
1300         (WebInspector.ScriptSnippetModel.prototype._reset):
1301         (WebInspector.SnippetScriptMapping.prototype._fireUISourceCodeAdded):
1302         (WebInspector.SnippetScriptMapping.prototype._fireUISourceCodeRemoved):
1303         * inspector/front-end/ScriptsNavigator.js:
1304         (WebInspector.ScriptsNavigator.prototype.replaceUISourceCode):
1305         * inspector/front-end/ScriptsPanel.js:
1306         (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
1307         * inspector/front-end/TabbedEditorContainer.js:
1308
1309 2012-05-16  Keishi Hattori  <keishi@webkit.org>
1310
1311         [chromium] Add WebKit API to access inner text value of input element
1312         https://bugs.webkit.org/show_bug.cgi?id=85353
1313
1314         Reviewed by Kent Tamura.
1315
1316         Test: fast/forms/editing-value.html
1317
1318         We need this to implement the datalist UI for  <input type=email multiple>.
1319         HTMLInputElement.value gives you the sanitized value so the whitespace between values are trimmed.
1320         We need to append the selected suggestion to the end without modifying the rest of the text.
1321
1322         * WebCore.exp.in: Added HTMLInputElement::setEditingValue
1323         * html/HTMLInputElement.cpp:
1324         (WebCore::HTMLInputElement::setEditingValue):
1325         (WebCore):
1326         * html/HTMLInputElement.h:
1327         (HTMLInputElement):
1328         * testing/Internals.cpp:
1329         (WebCore::Internals::setEditingValue):
1330         (WebCore):
1331         * testing/Internals.h:
1332         (Internals):
1333         * testing/Internals.idl:
1334
1335 2012-05-16  Jason Liu  <jason.liu@torchmobile.com.cn>
1336
1337         [BlackBerry] Cookies should be checked during parsing to improve performance.
1338         https://bugs.webkit.org/show_bug.cgi?id=85028
1339
1340         Reviewed by George Staikos.
1341
1342         We shouldn't waste time and memery on invalid cookies. It is better to drop them during parsing.
1343         We shouldn't check the default domain since it is set with host. So we only check domains which are parsed
1344         from response headers.
1345
1346         No new tests. No functionality change.
1347
1348         * platform/blackberry/CookieManager.cpp:
1349         (WebCore::CookieManager::setCookies):
1350         * platform/blackberry/CookieManager.h:
1351         * platform/blackberry/CookieParser.cpp:
1352         (WebCore::CookieParser::parseOneCookie):
1353
1354 2012-05-15  Pierre Rossi  <pierre.rossi@gmail.com>
1355
1356         [Qt] Enable SVG Fonts by default
1357         https://bugs.webkit.org/show_bug.cgi?id=86463
1358
1359         Reviewed by Nikolas Zimmermann.
1360
1361         Another feature we can get for free after switching to using
1362         the font fast path with QRawFont.
1363         It will get disabled in features.prf if either SVG support is
1364         disabled or if we are not using QRawFont (e.g. for Qt 4).
1365
1366         Covered by a series of tests that were skipped for the
1367         Qt port up until now.
1368
1369         * platform/graphics/qt/FontPlatformData.h:
1370         (WebCore::FontPlatformDataPrivate::FontPlatformDataPrivate):
1371         Initialize the platform data used as fallback in conjunction with SVG
1372         fonts so it will honor size, weight and oblique-ness.
1373         * rendering/svg/SVGTextMetricsBuilder.cpp: Avoid forcing the complex path.
1374         (WebCore::SVGTextMetricsBuilder::advance):
1375         (WebCore::SVGTextMetricsBuilder::advanceSimpleText):
1376         (WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer):
1377         * svg/SVGFontElement.cpp:
1378         (WebCore::SVGFontElement::ensureGlyphCache): avoid ambiguity with String(const QString&)
1379
1380 2012-05-16  Kenichi Ishibashi  <bashi@chromium.org>
1381
1382         [Chromium] WebTransformationMatrixTest.verifyDefaultConstructorCreatesIdentityMatrix is failing
1383         https://bugs.webkit.org/show_bug.cgi?id=86589
1384
1385         Reviewed by Kent Tamura.
1386
1387         Need to call m_private.reset(0) before destructing WebTransformationMatrix objects.
1388
1389         No new tests. WebTransformationMatrixTest should pass on debug build.
1390
1391         * platform/chromium/support/WebTransformationMatrix.cpp:
1392         (WebKit::WebTransformationMatrix::~WebTransformationMatrix):
1393         (WebKit):
1394
1395 2012-05-16  Shinya Kawanaka  <shinyak@chromium.org>
1396
1397         ShadowRoot.selection should return the seleciton whose range is in a shadow tree.
1398         https://bugs.webkit.org/show_bug.cgi?id=82698
1399
1400         Reviewed by Ryosuke Niwa.
1401
1402         The selection object returned from shadowRoot.selection should be able to see
1403         the inner object of the shadowRoot.
1404
1405         In the previous code, the node out of the shadow subtree was returned for
1406         anchorNode, focusNode, baseNode, and extentNode. This patch enables us to get
1407         the corresponding shadow ancestor in the specified TreeScope (m_treeScope).
1408
1409         Tests: editing/shadow/selection-of-orphan-shadowroot.html
1410                editing/shadow/selection-of-shadowroot.html
1411
1412         * dom/ShadowRoot.cpp:
1413         (WebCore::ShadowRoot::selection):
1414         * dom/ShadowRoot.h:
1415         (ShadowRoot):
1416         * dom/TreeScope.cpp:
1417         (WebCore::TreeScope::getSelection): When shadow DOM feature is not enabled, we want to use the same
1418         instance of DOMSelection among Document and ShadowRoot.
1419         * dom/TreeScopeAdjuster.cpp:
1420         (WebCore::TreeScopeAdjuster::TreeScopeAdjuster):
1421         (WebCore::TreeScopeAdjuster::ancestorInThisScope): Since node could be null, I've added a node check code.
1422         * dom/TreeScopeAdjuster.h:
1423         (TreeScopeAdjuster):
1424         (WebCore::TreeScopeAdjuster::treeScope):
1425         * page/DOMSelection.cpp:
1426         (WebCore::DOMSelection::anchorNode):
1427         (WebCore::DOMSelection::anchorOffset):
1428         (WebCore::DOMSelection::focusNode):
1429         (WebCore::DOMSelection::focusOffset):
1430         (WebCore::DOMSelection::baseNode):
1431         (WebCore::DOMSelection::baseOffset):
1432         (WebCore::DOMSelection::extentNode):
1433         (WebCore::DOMSelection::extentOffset):
1434         (WebCore::DOMSelection::shadowAdjustedNode): Gets the corresponding node in the m_treeScope from the Position.
1435         (WebCore):
1436         (WebCore::DOMSelection::shadowAdjustedOffset): Gets the corresponding node offset in the m_treeScope from the Position.
1437         * page/DOMSelection.h:
1438         (WebCore):
1439         (DOMSelection):
1440
1441 2012-05-16  Jason Liu  <jason.liu@torchmobile.com.cn>
1442
1443         [BlackBerry] xhr request to non existent file response is 0 and not 404.
1444         https://bugs.webkit.org/show_bug.cgi?id=86344
1445
1446         Reviewed by George Staikos.
1447
1448         NetworkJob receives 404 for a XMLHttpRequest which calls open("HEAD", "notExist.html", true).
1449         There are no data received because its method is HEAD.
1450         This case should not be treated as a failure.
1451
1452         Add shouldNotifyClientFailed() to treat XMLHttpRequest as a special case.
1453         XMLHttpRequest will fail when status code is smaller than zero.
1454
1455         If we use "GET" and receive 404 without body, NetworkJob won't go through failing code path, too.
1456         So add http/tests/xmlhttprequest/xmlhttprequest-check-get-readystate-for-404-without-body.html
1457         to check this case.
1458
1459         Test: http/tests/xmlhttprequest/xmlhttprequest-check-head-readystate-for-404.html
1460               http/tests/xmlhttprequest/xmlhttprequest-check-get-readystate-for-404-without-body.html
1461         * platform/network/blackberry/NetworkJob.cpp:
1462         (WebCore::NetworkJob::sendResponseIfNeeded):
1463
1464 2012-05-16  MORITA Hajime  <morrita@google.com>
1465
1466         HasCustomWillOrDidRecalcStyleFlag and family should live in a bit.
1467         https://bugs.webkit.org/show_bug.cgi?id=86175
1468
1469         Reviewed by Ryosuke Niwa.
1470
1471         This change unifies following flags into one HasCustomCallbacksFlag.
1472         - HasCustomWillOrDidRecalcStyleFlag
1473         - HasCustomStyleForRendererFlag
1474         - IsFrameOwnerElementFlag
1475
1476         By this change, some callbacks can be called even if there are no override.
1477         So all custom callbacks should just pass these invocations.
1478
1479         No new tests. No behavior change.
1480
1481         * dom/ContainerNodeAlgorithms.h:
1482         (WebCore::ChildFrameDisconnector::collectDescendant):
1483         * dom/Element.cpp:
1484         (WebCore::Element::styleForRenderer):
1485         (WebCore::Element::recalcStyle):
1486         (WebCore::Element::willRecalcStyle):
1487         (WebCore):
1488         (WebCore::Element::didRecalcStyle):
1489         (WebCore::Element::customStyleForRenderer):
1490         * dom/Element.h:
1491         (Element):
1492         * dom/Node.h:
1493         (WebCore::Node::isFrameOwnerElement):
1494         (WebCore::Node::hasCustomCallbacks):
1495         (WebCore::Node::setHasCustomCallbacks):
1496         * dom/Text.cpp:
1497         (WebCore::Text::recalcTextStyle):
1498         (WebCore::Text::willRecalcTextStyle):
1499         (WebCore):
1500         * dom/Text.h:
1501         (Text):
1502         * html/HTMLFormControlElement.cpp:
1503         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
1504         * html/HTMLFrameOwnerElement.cpp:
1505         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
1506         * html/HTMLFrameOwnerElement.h:
1507         * html/HTMLFrameSetElement.cpp:
1508         (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
1509         * html/HTMLIFrameElement.cpp:
1510         (WebCore::HTMLIFrameElement::HTMLIFrameElement):
1511         * html/HTMLMediaElement.cpp:
1512         (WebCore::HTMLMediaElement::HTMLMediaElement):
1513         * html/HTMLPlugInImageElement.cpp:
1514         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
1515         (WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
1516         (WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):
1517         (WebCore::HTMLPlugInImageElement::customStyleForRenderer):
1518         * html/HTMLPlugInImageElement.h:
1519         (HTMLPlugInImageElement):
1520         * html/shadow/TextControlInnerElements.cpp:
1521         (WebCore::TextControlInnerElement::TextControlInnerElement):
1522         (WebCore::TextControlInnerElement::customStyleForRenderer):
1523         (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
1524         (WebCore::TextControlInnerTextElement::customStyleForRenderer):
1525         * html/shadow/TextControlInnerElements.h:
1526         (TextControlInnerElement):
1527         (TextControlInnerTextElement):
1528         * html/shadow/TextFieldDecorationElement.cpp:
1529         (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
1530         (WebCore::TextFieldDecorationElement::customStyleForRenderer):
1531         * html/shadow/TextFieldDecorationElement.h:
1532         (TextFieldDecorationElement):
1533         * svg/SVGElement.cpp:
1534         (WebCore::SVGElement::SVGElement):
1535         (WebCore::SVGElement::customStyleForRenderer):
1536         * svg/SVGElement.h:
1537         (SVGElement):
1538         * svg/SVGTRefElement.cpp:
1539         (WebCore::SVGShadowText::SVGShadowText):
1540         * svg/SVGUseElement.cpp:
1541         (WebCore::SVGUseElement::SVGUseElement):
1542
1543 2012-05-16  Yury Semikhatsky  <yurys@chromium.org>
1544
1545         Web Inspector: exception when switching to heap profiler comparison view
1546         https://bugs.webkit.org/show_bug.cgi?id=86224
1547
1548         Reviewed by Pavel Feldman.
1549
1550         Make sure the messages are dispatched in the same order as they are sent in
1551         case a fake worker is used for heap snapshot processing.
1552
1553         * inspector/front-end/HeapSnapshotProxy.js:
1554         (WebInspector.AsyncTaskQueue):
1555         (WebInspector.AsyncTaskQueue.prototype.addTask):
1556         (WebInspector.AsyncTaskQueue.prototype._onTimeout):
1557         (WebInspector.AsyncTaskQueue.prototype._scheduleTimer):
1558         (WebInspector.HeapSnapshotFakeWorker):
1559         (WebInspector.HeapSnapshotFakeWorker.prototype.postMessage):
1560         (WebInspector.HeapSnapshotFakeWorker.prototype._postMessageFromWorker):
1561
1562 2012-05-16  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
1563
1564         [EFL] PlatformKeyboardEvent: figures, letters and printscreen key handling
1565         https://bugs.webkit.org/show_bug.cgi?id=85503
1566
1567         Reviewed by Gustavo Noronha Silva.
1568
1569         * platform/efl/EflKeyboardUtilities.cpp:
1570         (WebCore::addCharactersToKeyMap): aux function
1571         (WebCore):
1572         (WebCore::createKeyMap): Figures and letters keys are added to the keyMap
1573         (WebCore::addCharactersToWinKeyMap): aux function
1574         (WebCore::createWindowsKeyMap): Capital letters keys are added to the windowsKeyMap. Corrected value for printscreen key.
1575         (WebCore::singleCharacterString): Return empty text for printscreen key.
1576
1577 2012-05-16  Pavel Feldman  <pfeldman@chromium.org>
1578
1579         Web Inspector: rename DebuggerPresentationModel to DebuggerScriptMapping, make it private to ScriptsPanel.
1580         https://bugs.webkit.org/show_bug.cgi?id=86594
1581
1582         Reviewed by Vsevolod Vlasov.
1583
1584         This change completes the elimination of the presentation model.
1585
1586         * WebCore.gypi:
1587         * WebCore.vcproj/WebCore.vcproj:
1588         * inspector/compile-front-end.py:
1589         * inspector/front-end/AuditFormatters.js:
1590         (WebInspector.AuditFormatters.resourceLink):
1591         * inspector/front-end/DebuggerResourceBinding.js:
1592         (WebInspector.DebuggerResourceBinding):
1593         (WebInspector.DebuggerResourceBinding.prototype._uiSourceCodeForResource):
1594         * inspector/front-end/DebuggerScriptMapping.js: Renamed from Source/WebCore/inspector/front-end/DebuggerPresentationModel.js.
1595         (WebInspector.DebuggerScriptMapping):
1596         (WebInspector.DebuggerScriptMapping.prototype._handleUISourceCodeListChanged):
1597         * inspector/front-end/FilteredItemSelectionDialog.js:
1598         (WebInspector.OpenScriptDialog):
1599         (WebInspector.OpenScriptDialog.install):
1600         (WebInspector.OpenScriptDialog._show):
1601         * inspector/front-end/JavaScriptSourceFrame.js:
1602         (WebInspector.JavaScriptSourceFrame):
1603         * inspector/front-end/PresentationConsoleMessageHelper.js:
1604         (WebInspector.PresentationConsoleMessageHelper):
1605         (WebInspector.PresentationConsoleMessageHelper.prototype._consoleCleared):
1606         * inspector/front-end/ScriptsPanel.js:
1607         (WebInspector.ScriptsPanel.prototype._loadUISourceCodes):
1608         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
1609         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
1610         * inspector/front-end/ScriptsSearchScope.js:
1611         (WebInspector.ScriptsSearchScope):
1612         (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
1613         * inspector/front-end/UISourceCode.js:
1614         (WebInspector.UISourceCodeProject):
1615         (WebInspector.UISourceCodeProject.prototype.uiSourceCodes):
1616         * inspector/front-end/WebKit.qrc:
1617         * inspector/front-end/inspector.html:
1618         * inspector/front-end/inspector.js:
1619         (WebInspector._createPanels):
1620
1621 2012-05-15  Yury Semikhatsky  <yurys@chromium.org>
1622
1623         Web Inspector: use separate fields for storing HeapSnapshotLoaderProxy and HeapSnapshotProxy
1624         https://bugs.webkit.org/show_bug.cgi?id=86488
1625
1626         Reviewed by Pavel Feldman.
1627
1628         Simplified heap profiler snapshot loading code. Introduced dedicated fields for
1629         snapshot loader proxy and for snapshot proxy.
1630
1631         * inspector/front-end/HeapSnapshotProxy.js:
1632         (WebInspector.HeapSnapshotWorker):
1633         (WebInspector.HeapSnapshotLoaderProxy):
1634         (WebInspector.HeapSnapshotLoaderProxy.prototype.finishLoading.updateStaticData):
1635         (WebInspector.HeapSnapshotLoaderProxy.prototype.finishLoading.callLoadCallbacks):
1636         (WebInspector.HeapSnapshotLoaderProxy.prototype.finishLoading):
1637         (WebInspector.HeapSnapshotLoaderProxy.prototype.get loaded):
1638         (WebInspector.HeapSnapshotLoaderProxy.prototype.startLoading):
1639         (WebInspector.HeapSnapshotLoaderProxy.prototype.pushJSONChunk):
1640         * inspector/front-end/HeapSnapshotView.js:
1641         (WebInspector.HeapSnapshotView.profileCallback):
1642         (WebInspector.HeapSnapshotView):
1643         (WebInspector.HeapSnapshotView.prototype.dispose):
1644         (WebInspector.HeapSnapshotView.prototype.get baseProfileWrapper):
1645         (WebInspector.HeapSnapshotView.prototype.wasShown.profileCallback1):
1646         (WebInspector.HeapSnapshotView.prototype._changeView):
1647         (WebInspector.HeapProfileHeader): split _proxy field into _loaderProxy and _snapshotProxy
1648         (WebInspector.HeapProfileHeader.prototype.snapshotProxy):
1649         (WebInspector.HeapProfileHeader.prototype.load):
1650         (WebInspector.HeapProfileHeader.prototype._setupWorker):
1651         (WebInspector.HeapProfileHeader.prototype.dispose):
1652         (WebInspector.HeapProfileHeader.prototype._saveStatusUpdate):
1653         (WebInspector.HeapProfileHeader.prototype.pushJSONChunk):
1654         (WebInspector.HeapProfileHeader.prototype.finishHeapSnapshot):
1655         (WebInspector.HeapProfileHeader.prototype.canSaveToFile):
1656         (WebInspector.HeapProfileHeader.prototype.loadFromFile.onLoad):
1657         (WebInspector.HeapProfileHeader.prototype.loadFromFile):
1658
1659 2012-05-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1660
1661         Web Inspector: Use CSS columns feature for HelpScreen contents.
1662         https://bugs.webkit.org/show_bug.cgi?id=86367
1663
1664         Reviewed by Yury Semikhatsky.
1665
1666         Right-docked inspector should show shortcuts/settings in one column.
1667         Bottom-docked inspector should use horizontal space more effectively
1668         (more than 2 columns in shortcuts/settings).
1669
1670         Please see attached screenshots.
1671
1672         UI adjustments, no new tests.
1673
1674         * inspector/front-end/SettingsScreen.js:
1675         (WebInspector.SettingsScreen): Turned table to div.
1676         (WebInspector.SettingsScreen.prototype._appendSection): Removed.
1677         * inspector/front-end/ShortcutsScreen.js:
1678         (WebInspector.ShortcutsScreen.prototype._buildTable): Removed "balancing" algorithm.
1679         (WebInspector.ShortcutsSection.prototype.renderSection): Turned table to div.
1680         (WebInspector.ShortcutsSection.prototype._renderHeader): Ditto.
1681         * inspector/front-end/helpScreen.css: Use CSS columns feature.
1682         (.help-container): Added columns container.
1683         (.help-block): Added "section".
1684         (.help-line): Added key shortcut line.
1685         (.help-key-cell): Added key shortcut cell.
1686         (.help-cell): Ditto
1687         (.help-section-title): Combined title classes
1688         (.help-content p): Adjusted spacing.
1689
1690 2012-05-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1691
1692         Unreviewed, rolling out r117050.
1693         http://trac.webkit.org/changeset/117050
1694         https://bugs.webkit.org/show_bug.cgi?id=86587
1695
1696         "Some heap profiler tests started timing out" (Requested by
1697         yurys on #webkit).
1698
1699         * inspector/front-end/HeapSnapshotProxy.js:
1700         (WebInspector.HeapSnapshotFakeWorker):
1701         (WebInspector.HeapSnapshotFakeWorker.prototype.postMessage):
1702         (WebInspector.HeapSnapshotFakeWorker.prototype._postMessageFromWorker):
1703
1704 2012-05-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1705
1706         Unreviewed, rolling out r117206.
1707         http://trac.webkit.org/changeset/117206
1708         https://bugs.webkit.org/show_bug.cgi?id=86583
1709
1710         breaks chromium browser_tests (Requested by bashi1 on
1711         #webkit).
1712
1713         * loader/MainResourceLoader.cpp:
1714         (WebCore::MainResourceLoader::continueAfterContentPolicy):
1715         * loader/archive/mhtml/MHTMLArchive.cpp:
1716         (WebCore::MHTMLArchive::create):
1717
1718 2012-05-16  Nikolas Zimmermann  <nzimmermann@rim.com>
1719
1720         REGRESSION(r105057): Infinite loop inside SVGTextLayoutEngine::currentLogicalCharacterMetrics
1721         https://bugs.webkit.org/show_bug.cgi?id=83405
1722
1723         Reviewed by Darin Adler.
1724
1725         Dynamically adding tspans carrying position information in the x/y/dx/dy/rotate lists is broken.
1726         To avoid mistakes like this in future, simplify the calling code in RenderSVGInlineText and centralize
1727         the management of all caches (text positioning element cache / metrics map / layout attributes) in
1728         RenderSVGText. This avoids the hack in SVGRootInlineBox::computePerCharacterLayoutInformation() which
1729         called textRoot->rebuildLayoutAttributes(), which was used to fix previous security issues with this code.
1730         Instead correctly handle destruction of RenderSVGInlineText in RenderSVGText, keeping the m_layoutAttributes
1731         synchronized with the current state of the render tree. Fixes highcharts problems.
1732
1733         Tests: svg/text/add-tspan-position-bug.html
1734                svg/text/highcharts-assertion.html
1735                svg/text/modify-tspan-position-bug.html
1736
1737         * rendering/svg/RenderSVGBlock.h:
1738         (RenderSVGBlock):
1739         * rendering/svg/RenderSVGInline.cpp:
1740         (WebCore::RenderSVGInline::addChild):
1741         (WebCore::RenderSVGInline::removeChild):
1742         * rendering/svg/RenderSVGInline.h:
1743         (RenderSVGInline):
1744         * rendering/svg/RenderSVGInlineText.cpp:
1745         (WebCore::RenderSVGInlineText::setTextInternal):
1746         (WebCore::RenderSVGInlineText::styleDidChange):
1747         * rendering/svg/RenderSVGInlineText.h:
1748         * rendering/svg/RenderSVGText.cpp:
1749         (WebCore::RenderSVGText::RenderSVGText):
1750         (WebCore::RenderSVGText::~RenderSVGText):
1751         (WebCore::collectLayoutAttributes):
1752         (WebCore::RenderSVGText::subtreeChildWasAdded):
1753         (WebCore::findPreviousAndNextAttributes):
1754         (WebCore::checkLayoutAttributesConsistency):
1755         (WebCore::RenderSVGText::willBeDestroyed):
1756         (WebCore::RenderSVGText::subtreeChildWillBeRemoved):
1757         (WebCore::RenderSVGText::subtreeChildWasRemoved):
1758         (WebCore::RenderSVGText::subtreeStyleDidChange):
1759         (WebCore::RenderSVGText::subtreeTextDidChange):
1760         (WebCore::updateFontInAllDescendants):
1761         (WebCore::RenderSVGText::layout):
1762         (WebCore::RenderSVGText::addChild):
1763         (WebCore::RenderSVGText::removeChild):
1764         * rendering/svg/RenderSVGText.h:
1765         (RenderSVGText):
1766         * rendering/svg/SVGRenderSupport.cpp:
1767         (WebCore::SVGRenderSupport::layoutChildren):
1768         * rendering/svg/SVGRootInlineBox.cpp:
1769         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
1770         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
1771         (WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributesForTextRenderer):
1772         (WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributesForWholeTree):
1773         (WebCore::SVGTextLayoutAttributesBuilder::rebuildMetricsForTextRenderer):
1774         (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
1775         * rendering/svg/SVGTextLayoutAttributesBuilder.h:
1776         (SVGTextLayoutAttributesBuilder):
1777         (WebCore::SVGTextLayoutAttributesBuilder::numberOfTextPositioningElements):
1778         * svg/SVGAElement.cpp:
1779         * svg/SVGAElement.h:
1780         (SVGAElement):
1781         * svg/SVGTextContentElement.cpp:
1782         * svg/SVGTextContentElement.h:
1783         (SVGTextContentElement):
1784
1785 2012-05-15  Abhishek Arya  <inferno@chromium.org>
1786
1787         Crash in Document::nodeChildrenWillBeRemoved.
1788         https://bugs.webkit.org/show_bug.cgi?id=85247
1789
1790         Reviewed by Hajime Morita.
1791
1792         Reverse ordering of commands to ref ptr the children set
1793         first before calling nodeChildrenWillBeRemoved, since it
1794         can fire mutation events.
1795
1796         Test: fast/dom/HTMLObjectElement/beforeload-set-text-crash.xhtml
1797
1798         * dom/ContainerNode.cpp:
1799         (WebCore::willRemoveChildren):
1800
1801 2012-05-15  Igor Oliveira  <igor.o@sisa.samsung.com>
1802
1803         regression(111639): Issue with simultaneous CSS animations
1804         https://bugs.webkit.org/show_bug.cgi?id=85929
1805
1806         Currently, previousTimeToNextService is just saving the previous CompositeAnimation::timeToNextService
1807         for AnimationControllerPrivate::updateAnimationTimerForRenderer, however CompositeAnimation::timeToNextService
1808         is also called and used by updateAnimationTimer. Make sure we save the existing timeToNextService from
1809         both places, updateAnimationTimerForRenderer and updateAnimationTimer.
1810
1811         Reviewed by Dean Jackson.
1812
1813         Test: animations/fill-mode-forwards.html
1814
1815         * page/animation/AnimationController.cpp:
1816         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
1817         (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
1818         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
1819         * page/animation/AnimationControllerPrivate.h:
1820         (AnimationControllerPrivate):
1821
1822 2012-05-15  Tien-Ren Chen  <trchen@chromium.org>
1823
1824         [Chromium] CCTimer::isActive() is incorrect inside tick callback
1825         https://bugs.webkit.org/show_bug.cgi?id=86513
1826
1827         This patch implements CCTimer::isActive() by clearing the task pointer
1828         when the timer fires.
1829
1830         Reviewed by James Robinson.
1831
1832         No new tests. Existing tests updated accordingly.
1833
1834         * platform/graphics/chromium/cc/CCTimer.cpp:
1835         (WebCore::CCTimerTask::performTask):
1836         * rendering/RenderLayerBacking.cpp:
1837
1838 2012-05-15  Kentaro Hara  <haraken@chromium.org>
1839
1840         Unreviewed. Rebaselined run-bindings-tests results.
1841
1842         * bindings/scripts/test/JS/JSFloat64Array.cpp:
1843         (WebCore::JSFloat64Array::getOwnPropertySlot):
1844         (WebCore::JSFloat64Array::getOwnPropertyDescriptor):
1845         (WebCore::JSFloat64Array::put):
1846         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1847         (WebCore::JSTestEventTarget::getOwnPropertySlot):
1848         (WebCore::JSTestEventTarget::getOwnPropertyDescriptor):
1849
1850 2012-05-15  Shinya Kawanaka  <shinyak@chromium.org>
1851
1852         Rename Node::shadowTreeRootNode() to Node::shadowRoot()
1853         https://bugs.webkit.org/show_bug.cgi?id=86449
1854
1855         Reviewed by Darin Adler.
1856
1857         Since Node::shadowTreeRootNode() returns always a ShadowRoot now, shadowRoot() is
1858         mure suitable than shadowTreeRootNode().
1859
1860         This patch changes the method name.
1861
1862         No new tests, no change in behavior.
1863
1864         * WebCore.order:
1865         * dom/Node.cpp:
1866         (WebCore::Node::rendererIsEditable):
1867         (WebCore::Node::shadowAncestorNode):
1868         (WebCore::Node::shadowRoot):
1869         * dom/Node.h:
1870         (Node):
1871         * dom/NodeRenderingContext.cpp:
1872         (WebCore::NodeRenderingContext::NodeRenderingContext):
1873         * dom/Range.cpp:
1874         (WebCore::Range::shadowRoot):
1875         * dom/Range.h:
1876         (Range):
1877         * editing/Editor.cpp:
1878         (WebCore::Editor::nextVisibleRange):
1879         (WebCore::Editor::countMatchesForText):
1880         * editing/TextIterator.cpp:
1881         (WebCore::TextIterator::handleReplacedElement):
1882         * editing/htmlediting.cpp:
1883         (WebCore::indexForVisiblePosition):
1884         * html/shadow/ContentSelectorQuery.cpp:
1885         (WebCore::ContentSelectorQuery::matches):
1886         * html/shadow/HTMLContentElement.cpp:
1887         (WebCore::HTMLContentElement::parseAttribute):
1888         * html/shadow/InsertionPoint.cpp:
1889         (WebCore::InsertionPoint::detach):
1890         * page/EventHandler.cpp:
1891         (WebCore::instanceAssociatedWithShadowTreeElement):
1892         * svg/SVGElement.cpp:
1893         (WebCore::SVGElement::correspondingElement):
1894         (WebCore::collectInstancesForSVGElement):
1895
1896 2012-05-15  Nico Weber  <thakis@chromium.org>
1897
1898         [chromium] Remove some unused gyp lines
1899         https://bugs.webkit.org/show_bug.cgi?id=86545
1900
1901         Reviewed by Dirk Pranke.
1902
1903         mac_framework_dirs adds directories to search for frameworks
1904         (similar to -I for includes), it doesn't add any frameworks.
1905         Having something that ends in .framewok in mac_framework_dirs
1906         doesn't make sense.
1907
1908         No intended functionality change.
1909
1910         * WebCore.gyp/WebCore.gyp:
1911
1912 2012-05-13  Philippe Normand  <pnormand@igalia.com>
1913
1914         [GStreamer] build a static list of mime-types
1915         https://bugs.webkit.org/show_bug.cgi?id=86331
1916
1917         Reviewed by Martin Robinson.
1918
1919         Don't bother parsing the gstreamer typefind factories and doing
1920         ugly hacks around this. Instead build a static list and let our
1921         ::supportsType() method return MediaPlayer::MayBeSupported or
1922         MediaPlayer::IsSupported for them. Playback will still fail if a
1923         demuxer or decoder is missing for one of these mime-types but we
1924         will handle that case more properly soon by fixing bug 34085 and
1925         bug 34318.
1926
1927         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1928
1929 2012-05-15  Greg Spencer  <gspencer@chromium.org>
1930
1931         MHTML files should be loadable from all schemes considered local,
1932         not just file:
1933
1934         https://bugs.webkit.org/show_bug.cgi?id=86540
1935
1936         Reviewed by Adam Barth.
1937
1938         Current tests should assure that loading is still allowed locally.
1939
1940         * loader/MainResourceLoader.cpp:
1941         (WebCore::MainResourceLoader::continueAfterContentPolicy):
1942         * loader/archive/mhtml/MHTMLArchive.cpp:
1943         (WebCore::MHTMLArchive::create):
1944
1945 2012-05-15  Fady Samuel  <fsamuel@chromium.org>
1946
1947         [Chromium] Reset ScriptInstance in HTMLPlugInElement on WebPluginContainerImpl::setPlugin
1948         https://bugs.webkit.org/show_bug.cgi?id=86535
1949
1950         Reviewed by Darin Fisher.
1951         
1952         When we swap out WebPluginImpls for the Browser Plugin, the HTMLPlugInElement continues
1953         to use a now invalid ScriptInstance, so we reset the ScriptInstance on WebPluginContainerImpl::setPlugin
1954
1955         * html/HTMLPlugInElement.cpp:
1956         (WebCore::HTMLPlugInElement::resetInstance):
1957         (WebCore):
1958         * html/HTMLPlugInElement.h:
1959         (HTMLPlugInElement):
1960
1961 2012-05-15  Robert Hogan  <robert@webkit.org>
1962
1963         Heap-use-after-free in WebCore::RenderBlock::layoutRunsAndFloats
1964         https://bugs.webkit.org/show_bug.cgi?id=86206
1965
1966         Reviewed by Abhishek Arya.
1967
1968         Revert https://trac.webkit.org/changeset/116438/. It caused three different regressions on 
1969         ClusterFuzz.
1970
1971         * rendering/RenderBlock.cpp:
1972         (WebCore::RenderBlock::updateFirstLetter):
1973         * rendering/RenderBlock.h:
1974         (RenderBlock):
1975
1976 2012-05-15  Beth Dakin  <bdakin@apple.com>
1977
1978         https://bugs.webkit.org/show_bug.cgi?id=86549
1979         Page Scale + Tiled Drawing: Twitter sign in page content disappears 
1980         after typing into name and enabling password field
1981         -and corresponding-
1982         <rdar://problem/11415352>
1983
1984         Reviewed by Oliver Hunt.
1985
1986         The enormous rect we used to use would overflow in CA and do nothing 
1987         when there was any scale > 1 on the context. Instead, just call 
1988         setNeedsDisplay on each tile.
1989         * platform/graphics/ca/mac/TileCache.mm:
1990         (WebCore::TileCache::setNeedsDisplay):
1991
1992 2012-05-15  Andreas Kling  <kling@webkit.org>
1993
1994         Pass Attribute by const reference as much as possible.
1995         <http://webkit.org/b/86487>
1996
1997         Reviewed by Darin Adler.
1998
1999         Switch to passing around "const Attribute&" instead of "Attribute*" wherever possible.
2000         This helps enforce the constness and non-nullity of these arguments at compile time.
2001
2002         Also renamed 'attr' to 'attribute' in the touched code. Attr and Attribute are two
2003         different classes, so having "Attribute attr" just looks wrong.
2004
2005         * bindings/js/ScriptEventListener.cpp:
2006         (WebCore::createAttributeEventListener):
2007         * bindings/js/ScriptEventListener.h:
2008         * bindings/v8/ScriptEventListener.cpp:
2009         (WebCore::createAttributeEventListener):
2010         * bindings/v8/ScriptEventListener.h:
2011         * dom/Attr.cpp:
2012         (WebCore::Attr::setPrefix):
2013         (WebCore::Attr::setValue):
2014         (WebCore::Attr::childrenChanged):
2015         (WebCore::Attr::style):
2016         (WebCore::Attr::elementAttribute):
2017         * dom/Attr.h:
2018         * dom/Element.cpp:
2019         (WebCore::Element::setAttributeInternal):
2020         (WebCore::Element::attributeChanged):
2021         (WebCore::Element::parserSetAttributes):
2022         (WebCore::Element::didAddAttribute):
2023         (WebCore::Element::didModifyAttribute):
2024         (WebCore::Element::didRemoveAttribute):
2025         * dom/Element.h:
2026         * dom/ElementAttributeData.cpp:
2027         (WebCore::ElementAttributeData::addAttribute):
2028         (WebCore::ElementAttributeData::setAttributes):
2029         (WebCore::ElementAttributeData::replaceAttribute):
2030         * dom/StyledElement.cpp:
2031         (WebCore::StyledElement::attributeChanged):
2032         (WebCore::StyledElement::parseAttribute):
2033         (WebCore::StyledElement::updateAttributeStyle):
2034         * dom/StyledElement.h:
2035         (WebCore::StyledElement::collectStyleForAttribute):
2036         * html/HTMLAnchorElement.cpp:
2037         (WebCore::HTMLAnchorElement::parseAttribute):
2038         * html/HTMLAnchorElement.h:
2039         * html/HTMLAppletElement.cpp:
2040         (WebCore::HTMLAppletElement::parseAttribute):
2041         * html/HTMLAppletElement.h:
2042         * html/HTMLAreaElement.cpp:
2043         (WebCore::HTMLAreaElement::parseAttribute):
2044         * html/HTMLAreaElement.h:
2045         * html/HTMLBRElement.cpp:
2046         (WebCore::HTMLBRElement::collectStyleForAttribute):
2047         * html/HTMLBRElement.h:
2048         * html/HTMLBaseElement.cpp:
2049         (WebCore::HTMLBaseElement::parseAttribute):
2050         * html/HTMLBaseElement.h:
2051         * html/HTMLBodyElement.cpp:
2052         (WebCore::HTMLBodyElement::collectStyleForAttribute):
2053         (WebCore::HTMLBodyElement::parseAttribute):
2054         * html/HTMLBodyElement.h:
2055         * html/HTMLButtonElement.cpp:
2056         (WebCore::HTMLButtonElement::parseAttribute):
2057         * html/HTMLButtonElement.h:
2058         * html/HTMLCanvasElement.cpp:
2059         (WebCore::HTMLCanvasElement::parseAttribute):
2060         * html/HTMLCanvasElement.h:
2061         * html/HTMLDetailsElement.cpp:
2062         (WebCore::HTMLDetailsElement::parseAttribute):
2063         * html/HTMLDetailsElement.h:
2064         * html/HTMLDivElement.cpp:
2065         (WebCore::HTMLDivElement::collectStyleForAttribute):
2066         * html/HTMLDivElement.h:
2067         * html/HTMLElement.cpp:
2068         (WebCore::parseBorderWidthAttribute):
2069         (WebCore::HTMLElement::applyBorderAttributeToStyle):
2070         (WebCore::HTMLElement::mapLanguageAttributeToLocale):
2071         (WebCore::HTMLElement::collectStyleForAttribute):
2072         (WebCore::HTMLElement::parseAttribute):
2073         (WebCore::HTMLElement::applyAlignmentAttributeToStyle):
2074         (WebCore::HTMLElement::dirAttributeChanged):
2075         * html/HTMLElement.h:
2076         * html/HTMLEmbedElement.cpp:
2077         (WebCore::HTMLEmbedElement::collectStyleForAttribute):
2078         (WebCore::HTMLEmbedElement::parseAttribute):
2079         * html/HTMLEmbedElement.h:
2080         * html/HTMLFontElement.cpp:
2081         (WebCore::HTMLFontElement::collectStyleForAttribute):
2082         * html/HTMLFontElement.h:
2083         * html/HTMLFormControlElement.cpp:
2084         (WebCore::HTMLFormControlElement::parseAttribute):
2085         * html/HTMLFormControlElement.h:
2086         * html/HTMLFormElement.cpp:
2087         (WebCore::HTMLFormElement::parseAttribute):
2088         * html/HTMLFormElement.h:
2089         * html/HTMLFrameElement.cpp:
2090         (WebCore::HTMLFrameElement::parseAttribute):
2091         * html/HTMLFrameElement.h:
2092         * html/HTMLFrameElementBase.cpp:
2093         (WebCore::HTMLFrameElementBase::parseAttribute):
2094         * html/HTMLFrameElementBase.h:
2095         (HTMLFrameElementBase):
2096         * html/HTMLFrameSetElement.cpp:
2097         (WebCore::HTMLFrameSetElement::collectStyleForAttribute):
2098         (WebCore::HTMLFrameSetElement::parseAttribute):
2099         * html/HTMLFrameSetElement.h:
2100         * html/HTMLHRElement.cpp:
2101         (WebCore::HTMLHRElement::collectStyleForAttribute):
2102         * html/HTMLHRElement.h:
2103         * html/HTMLIFrameElement.cpp:
2104         (WebCore::HTMLIFrameElement::collectStyleForAttribute):
2105         (WebCore::HTMLIFrameElement::parseAttribute):
2106         * html/HTMLIFrameElement.h:
2107         * html/HTMLImageElement.cpp:
2108         (WebCore::HTMLImageElement::collectStyleForAttribute):
2109         (WebCore::HTMLImageElement::parseAttribute):
2110         * html/HTMLImageElement.h:
2111         * html/HTMLInputElement.cpp:
2112         (WebCore::HTMLInputElement::updateType):
2113         (WebCore::HTMLInputElement::collectStyleForAttribute):
2114         (WebCore::HTMLInputElement::parseAttribute):
2115         (WebCore::HTMLInputElement::parseMaxLengthAttribute):
2116         * html/HTMLInputElement.h:
2117         * html/HTMLKeygenElement.cpp:
2118         (WebCore::HTMLKeygenElement::parseAttribute):
2119         * html/HTMLKeygenElement.h:
2120         * html/HTMLLIElement.cpp:
2121         (WebCore::HTMLLIElement::collectStyleForAttribute):
2122         (WebCore::HTMLLIElement::parseAttribute):
2123         * html/HTMLLIElement.h:
2124         * html/HTMLLinkElement.cpp:
2125         (WebCore::HTMLLinkElement::parseAttribute):
2126         * html/HTMLLinkElement.h:
2127         * html/HTMLMapElement.cpp:
2128         (WebCore::HTMLMapElement::parseAttribute):
2129         * html/HTMLMapElement.h:
2130         * html/HTMLMarqueeElement.cpp:
2131         (WebCore::HTMLMarqueeElement::collectStyleForAttribute):
2132         * html/HTMLMarqueeElement.h:
2133         * html/HTMLMediaElement.cpp:
2134         (WebCore::HTMLMediaElement::parseAttribute):
2135         * html/HTMLMediaElement.h:
2136         * html/HTMLMetaElement.cpp:
2137         (WebCore::HTMLMetaElement::parseAttribute):
2138         * html/HTMLMetaElement.h:
2139         * html/HTMLMeterElement.cpp:
2140         (WebCore::HTMLMeterElement::parseAttribute):
2141         * html/HTMLMeterElement.h:
2142         * html/HTMLOListElement.cpp:
2143         (WebCore::HTMLOListElement::collectStyleForAttribute):
2144         (WebCore::HTMLOListElement::parseAttribute):
2145         * html/HTMLOListElement.h:
2146         * html/HTMLObjectElement.cpp:
2147         (WebCore::HTMLObjectElement::collectStyleForAttribute):
2148         (WebCore::HTMLObjectElement::parseAttribute):
2149         * html/HTMLObjectElement.h:
2150         * html/HTMLOptGroupElement.cpp:
2151         (WebCore::HTMLOptGroupElement::parseAttribute):
2152         * html/HTMLOptGroupElement.h:
2153         * html/HTMLOptionElement.cpp:
2154         (WebCore::HTMLOptionElement::parseAttribute):
2155         * html/HTMLOptionElement.h:
2156         * html/HTMLOutputElement.cpp:
2157         (WebCore::HTMLOutputElement::parseAttribute):
2158         * html/HTMLOutputElement.h:
2159         * html/HTMLParagraphElement.cpp:
2160         (WebCore::HTMLParagraphElement::collectStyleForAttribute):
2161         * html/HTMLParagraphElement.h:
2162         * html/HTMLPlugInElement.cpp:
2163         (WebCore::HTMLPlugInElement::collectStyleForAttribute):
2164         * html/HTMLPlugInElement.h:
2165         * html/HTMLPreElement.cpp:
2166         (WebCore::HTMLPreElement::collectStyleForAttribute):
2167         * html/HTMLPreElement.h:
2168         * html/HTMLProgressElement.cpp:
2169         (WebCore::HTMLProgressElement::parseAttribute):
2170         * html/HTMLProgressElement.h:
2171         * html/HTMLScriptElement.cpp:
2172         (WebCore::HTMLScriptElement::parseAttribute):
2173         * html/HTMLScriptElement.h:
2174         * html/HTMLSelectElement.cpp:
2175         (WebCore::HTMLSelectElement::parseAttribute):
2176         (WebCore::HTMLSelectElement::parseMultipleAttribute):
2177         * html/HTMLSelectElement.h:
2178         * html/HTMLStyleElement.cpp:
2179         (WebCore::HTMLStyleElement::parseAttribute):
2180         * html/HTMLStyleElement.h:
2181         * html/HTMLTableCaptionElement.cpp:
2182         (WebCore::HTMLTableCaptionElement::collectStyleForAttribute):
2183         * html/HTMLTableCaptionElement.h:
2184         * html/HTMLTableCellElement.cpp:
2185         (WebCore::HTMLTableCellElement::collectStyleForAttribute):
2186         (WebCore::HTMLTableCellElement::parseAttribute):
2187         * html/HTMLTableCellElement.h:
2188         * html/HTMLTableColElement.cpp:
2189         (WebCore::HTMLTableColElement::collectStyleForAttribute):
2190         (WebCore::HTMLTableColElement::parseAttribute):
2191         * html/HTMLTableColElement.h:
2192         * html/HTMLTableElement.cpp:
2193         (WebCore::HTMLTableElement::collectStyleForAttribute):
2194         (WebCore::HTMLTableElement::parseAttribute):
2195         * html/HTMLTableElement.h:
2196         * html/HTMLTablePartElement.cpp:
2197         (WebCore::HTMLTablePartElement::collectStyleForAttribute):
2198         * html/HTMLTablePartElement.h:
2199         * html/HTMLTextAreaElement.cpp:
2200         (WebCore::HTMLTextAreaElement::collectStyleForAttribute):
2201         (WebCore::HTMLTextAreaElement::parseAttribute):
2202         * html/HTMLTextAreaElement.h:
2203         * html/HTMLTextFormControlElement.cpp:
2204         (WebCore::HTMLTextFormControlElement::parseAttribute):
2205         * html/HTMLTextFormControlElement.h:
2206         * html/HTMLTrackElement.cpp:
2207         (WebCore::HTMLTrackElement::parseAttribute):
2208         * html/HTMLTrackElement.h:
2209         * html/HTMLUListElement.cpp:
2210         (WebCore::HTMLUListElement::collectStyleForAttribute):
2211         * html/HTMLUListElement.h:
2212         * html/HTMLVideoElement.cpp:
2213         (WebCore::HTMLVideoElement::collectStyleForAttribute):
2214         (WebCore::HTMLVideoElement::parseAttribute):
2215         * html/HTMLVideoElement.h:
2216         * html/shadow/HTMLContentElement.cpp:
2217         (WebCore::HTMLContentElement::parseAttribute):
2218         * html/shadow/HTMLContentElement.h:
2219         * mathml/MathMLElement.cpp:
2220         (WebCore::MathMLElement::collectStyleForAttribute):
2221         * mathml/MathMLElement.h:
2222         * svg/SVGAElement.cpp:
2223         (WebCore::SVGAElement::parseAttribute):
2224         * svg/SVGAElement.h:
2225         * svg/SVGAnimateMotionElement.cpp:
2226         (WebCore::SVGAnimateMotionElement::parseAttribute):
2227         * svg/SVGAnimateMotionElement.h:
2228         * svg/SVGAnimateTransformElement.cpp:
2229         (WebCore::SVGAnimateTransformElement::parseAttribute):
2230         * svg/SVGAnimateTransformElement.h:
2231         * svg/SVGAnimationElement.cpp:
2232         (WebCore::SVGAnimationElement::parseAttribute):
2233         * svg/SVGAnimationElement.h:
2234         * svg/SVGCircleElement.cpp:
2235         (WebCore::SVGCircleElement::parseAttribute):
2236         * svg/SVGCircleElement.h:
2237         * svg/SVGClipPathElement.cpp:
2238         (WebCore::SVGClipPathElement::parseAttribute):
2239         * svg/SVGClipPathElement.h:
2240         * svg/SVGComponentTransferFunctionElement.cpp:
2241         (WebCore::SVGComponentTransferFunctionElement::parseAttribute):
2242         * svg/SVGComponentTransferFunctionElement.h:
2243         * svg/SVGCursorElement.cpp:
2244         (WebCore::SVGCursorElement::parseAttribute):
2245         * svg/SVGCursorElement.h:
2246         * svg/SVGElement.cpp:
2247         (WebCore::SVGElement::reportAttributeParsingError):
2248         (WebCore::SVGElement::parseAttribute):
2249         (WebCore::SVGElement::attributeChanged):
2250         * svg/SVGElement.h:
2251         * svg/SVGEllipseElement.cpp:
2252         (WebCore::SVGEllipseElement::parseAttribute):
2253         * svg/SVGEllipseElement.h:
2254         * svg/SVGExternalResourcesRequired.cpp:
2255         (WebCore::SVGExternalResourcesRequired::parseAttribute):
2256         * svg/SVGExternalResourcesRequired.h:
2257         (SVGExternalResourcesRequired):
2258         * svg/SVGFEBlendElement.cpp:
2259         (WebCore::SVGFEBlendElement::parseAttribute):
2260         * svg/SVGFEBlendElement.h:
2261         * svg/SVGFEColorMatrixElement.cpp:
2262         (WebCore::SVGFEColorMatrixElement::parseAttribute):
2263         * svg/SVGFEColorMatrixElement.h:
2264         * svg/SVGFEComponentTransferElement.cpp:
2265         (WebCore::SVGFEComponentTransferElement::parseAttribute):
2266         * svg/SVGFEComponentTransferElement.h:
2267         * svg/SVGFECompositeElement.cpp:
2268         (WebCore::SVGFECompositeElement::parseAttribute):
2269         * svg/SVGFECompositeElement.h:
2270         * svg/SVGFEConvolveMatrixElement.cpp:
2271         (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
2272         * svg/SVGFEConvolveMatrixElement.h:
2273         * svg/SVGFEDiffuseLightingElement.cpp:
2274         (WebCore::SVGFEDiffuseLightingElement::parseAttribute):
2275         * svg/SVGFEDiffuseLightingElement.h:
2276         * svg/SVGFEDisplacementMapElement.cpp:
2277         (WebCore::SVGFEDisplacementMapElement::parseAttribute):
2278         * svg/SVGFEDisplacementMapElement.h:
2279         * svg/SVGFEDropShadowElement.cpp:
2280         (WebCore::SVGFEDropShadowElement::parseAttribute):
2281         * svg/SVGFEDropShadowElement.h:
2282         * svg/SVGFEGaussianBlurElement.cpp:
2283         (WebCore::SVGFEGaussianBlurElement::parseAttribute):
2284         * svg/SVGFEGaussianBlurElement.h:
2285         * svg/SVGFEImageElement.cpp:
2286         (WebCore::SVGFEImageElement::parseAttribute):
2287         * svg/SVGFEImageElement.h:
2288         * svg/SVGFELightElement.cpp:
2289         (WebCore::SVGFELightElement::parseAttribute):
2290         * svg/SVGFELightElement.h:
2291         * svg/SVGFEMergeNodeElement.cpp:
2292         (WebCore::SVGFEMergeNodeElement::parseAttribute):
2293         * svg/SVGFEMergeNodeElement.h:
2294         * svg/SVGFEMorphologyElement.cpp:
2295         (WebCore::SVGFEMorphologyElement::parseAttribute):
2296         * svg/SVGFEMorphologyElement.h:
2297         * svg/SVGFEOffsetElement.cpp:
2298         (WebCore::SVGFEOffsetElement::parseAttribute):
2299         * svg/SVGFEOffsetElement.h:
2300         * svg/SVGFESpecularLightingElement.cpp:
2301         (WebCore::SVGFESpecularLightingElement::parseAttribute):
2302         * svg/SVGFESpecularLightingElement.h:
2303         * svg/SVGFETileElement.cpp:
2304         (WebCore::SVGFETileElement::parseAttribute):
2305         * svg/SVGFETileElement.h:
2306         * svg/SVGFETurbulenceElement.cpp:
2307         (WebCore::SVGFETurbulenceElement::parseAttribute):
2308         * svg/SVGFETurbulenceElement.h:
2309         * svg/SVGFilterElement.cpp:
2310         (WebCore::SVGFilterElement::parseAttribute):
2311         * svg/SVGFilterElement.h:
2312         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
2313         (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
2314         * svg/SVGFilterPrimitiveStandardAttributes.h:
2315         (SVGFilterPrimitiveStandardAttributes):
2316         * svg/SVGFitToViewBox.cpp:
2317         (WebCore::SVGFitToViewBox::parseAttribute):
2318         * svg/SVGFitToViewBox.h:
2319         (SVGFitToViewBox):
2320         * svg/SVGFontFaceElement.cpp:
2321         (WebCore::SVGFontFaceElement::parseAttribute):
2322         * svg/SVGFontFaceElement.h:
2323         * svg/SVGFontFaceUriElement.cpp:
2324         (WebCore::SVGFontFaceUriElement::parseAttribute):
2325         * svg/SVGFontFaceUriElement.h:
2326         * svg/SVGForeignObjectElement.cpp:
2327         (WebCore::SVGForeignObjectElement::parseAttribute):
2328         * svg/SVGForeignObjectElement.h:
2329         * svg/SVGGElement.cpp:
2330         (WebCore::SVGGElement::parseAttribute):
2331         * svg/SVGGElement.h:
2332         * svg/SVGGlyphElement.cpp:
2333         (WebCore::SVGGlyphElement::parseAttribute):
2334         * svg/SVGGlyphElement.h:
2335         * svg/SVGGlyphRefElement.cpp:
2336         (WebCore::SVGGlyphRefElement::parseAttribute):
2337         * svg/SVGGlyphRefElement.h:
2338         * svg/SVGGradientElement.cpp:
2339         (WebCore::SVGGradientElement::parseAttribute):
2340         * svg/SVGGradientElement.h:
2341         * svg/SVGImageElement.cpp:
2342         (WebCore::SVGImageElement::collectStyleForAttribute):
2343         (WebCore::SVGImageElement::parseAttribute):
2344         * svg/SVGImageElement.h:
2345         * svg/SVGImageLoader.cpp:
2346         (WebCore::SVGImageLoader::sourceURI):
2347         * svg/SVGLangSpace.cpp:
2348         (WebCore::SVGLangSpace::parseAttribute):
2349         * svg/SVGLangSpace.h:
2350         (SVGLangSpace):
2351         * svg/SVGLineElement.cpp:
2352         (WebCore::SVGLineElement::parseAttribute):
2353         * svg/SVGLineElement.h:
2354         * svg/SVGLinearGradientElement.cpp:
2355         (WebCore::SVGLinearGradientElement::parseAttribute):
2356         * svg/SVGLinearGradientElement.h:
2357         * svg/SVGMPathElement.cpp:
2358         (WebCore::SVGMPathElement::parseAttribute):
2359         * svg/SVGMPathElement.h:
2360         * svg/SVGMarkerElement.cpp:
2361         (WebCore::SVGMarkerElement::parseAttribute):
2362         * svg/SVGMarkerElement.h:
2363         * svg/SVGMaskElement.cpp:
2364         (WebCore::SVGMaskElement::parseAttribute):
2365         * svg/SVGMaskElement.h:
2366         * svg/SVGPathElement.cpp:
2367         (WebCore::SVGPathElement::parseAttribute):
2368         * svg/SVGPathElement.h:
2369         * svg/SVGPatternElement.cpp:
2370         (WebCore::SVGPatternElement::parseAttribute):
2371         * svg/SVGPatternElement.h:
2372         * svg/SVGPolyElement.cpp:
2373         (WebCore::SVGPolyElement::parseAttribute):
2374         * svg/SVGPolyElement.h:
2375         * svg/SVGRadialGradientElement.cpp:
2376         (WebCore::SVGRadialGradientElement::parseAttribute):
2377         * svg/SVGRadialGradientElement.h:
2378         * svg/SVGRectElement.cpp:
2379         (WebCore::SVGRectElement::parseAttribute):
2380         * svg/SVGRectElement.h:
2381         * svg/SVGSVGElement.cpp:
2382         (WebCore::SVGSVGElement::parseAttribute):
2383         * svg/SVGSVGElement.h:
2384         * svg/SVGScriptElement.cpp:
2385         (WebCore::SVGScriptElement::parseAttribute):
2386         * svg/SVGScriptElement.h:
2387         * svg/SVGStopElement.cpp:
2388         (WebCore::SVGStopElement::parseAttribute):
2389         * svg/SVGStopElement.h:
2390         * svg/SVGStyleElement.cpp:
2391         (WebCore::SVGStyleElement::parseAttribute):
2392         * svg/SVGStyleElement.h:
2393         * svg/SVGStyledElement.cpp:
2394         (WebCore::SVGStyledElement::collectStyleForAttribute):
2395         (WebCore::SVGStyledElement::parseAttribute):
2396         * svg/SVGStyledElement.h:
2397         * svg/SVGStyledTransformableElement.cpp:
2398         (WebCore::SVGStyledTransformableElement::parseAttribute):
2399         * svg/SVGStyledTransformableElement.h:
2400         * svg/SVGSymbolElement.cpp:
2401         (WebCore::SVGSymbolElement::parseAttribute):
2402         * svg/SVGSymbolElement.h:
2403         * svg/SVGTRefElement.cpp:
2404         (WebCore::SVGTRefElement::parseAttribute):
2405         * svg/SVGTRefElement.h:
2406         * svg/SVGTests.cpp:
2407         (WebCore::SVGTests::parseAttribute):
2408         * svg/SVGTests.h:
2409         (SVGTests):
2410         * svg/SVGTextContentElement.cpp:
2411         (WebCore::SVGTextContentElement::collectStyleForAttribute):
2412         (WebCore::SVGTextContentElement::parseAttribute):
2413         * svg/SVGTextContentElement.h:
2414         * svg/SVGTextElement.cpp:
2415         (WebCore::SVGTextElement::parseAttribute):
2416         * svg/SVGTextElement.h:
2417         * svg/SVGTextPathElement.cpp:
2418         (WebCore::SVGTextPathElement::parseAttribute):
2419         * svg/SVGTextPathElement.h:
2420         * svg/SVGTextPositioningElement.cpp:
2421         (WebCore::SVGTextPositioningElement::parseAttribute):
2422         * svg/SVGTextPositioningElement.h:
2423         * svg/SVGURIReference.cpp:
2424         (WebCore::SVGURIReference::parseAttribute):
2425         * svg/SVGURIReference.h:
2426         (SVGURIReference):
2427         * svg/SVGUseElement.cpp:
2428         (WebCore::SVGUseElement::parseAttribute):
2429         * svg/SVGUseElement.h:
2430         * svg/SVGViewElement.cpp:
2431         (WebCore::SVGViewElement::parseAttribute):
2432         * svg/SVGViewElement.h:
2433         * svg/SVGZoomAndPan.cpp:
2434         (WebCore::SVGZoomAndPan::parseAttribute):
2435         * svg/SVGZoomAndPan.h:
2436         (SVGZoomAndPan):
2437         * svg/animation/SVGSMILElement.cpp:
2438         (WebCore::SVGSMILElement::parseAttribute):
2439         * svg/animation/SVGSMILElement.h:
2440
2441 2012-05-15  Kenneth Russell  <kbr@google.com>
2442
2443         Assertion failure running Mozilla's WebGL performance regression tests
2444         https://bugs.webkit.org/show_bug.cgi?id=85942
2445
2446         Reviewed by Stephen White.
2447
2448         Fixed incorrect assumptions about source formats and buffer sizes
2449         when uploading to floating-point textures. Added code paths
2450         supporting the necessary conversions.
2451
2452         Tests have been added to the WebGL conformance suite which cover
2453         these new code paths; they verify uploads of HTMLCanvasElement,
2454         HTMLImageElement, HTMLVideoElement, and ImageData to
2455         floating-point textures. However, because floating-point texture
2456         support is optional, and generally only supported on bots which
2457         run with real GPUs and not in virtual machines, it isn't feasible
2458         to incorporate these tests as layout tests.
2459
2460         Ran the new WebGL conformance tests in Chromium on Linux; all
2461         pass.
2462
2463         * platform/graphics/GraphicsContext3D.cpp:
2464         (WebCore::GraphicsContext3D::extractImageData):
2465         Properly compute size of destination buffer.
2466
2467         (WebCore):
2468         Add pack/unpack routines for converting RGBA8/BGRA8 to floating point.
2469
2470         (WebCore::doFloatingPointPacking):
2471         Support RGBA8 and BGRA8 source formats.
2472
2473         (WebCore::isFloatingPointSource):
2474         Factored out logic for assertions.
2475
2476         (WebCore::GraphicsContext3D::packPixels):
2477         Generalized assertions and logic.
2478
2479         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
2480         (WebCore::GraphicsContext3D::getImageData):
2481         Properly compute size of destination buffer.
2482
2483         * platform/graphics/cg/GraphicsContext3DCG.cpp:
2484         (WebCore::GraphicsContext3D::getImageData):
2485         Properly compute size of destination buffer.
2486
2487         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2488         (WebCore::GraphicsContext3D::getImageData):
2489         Properly compute size of destination buffer.
2490
2491         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
2492         (WebCore::GraphicsContext3D::getImageData):
2493         Properly compute size of destination buffer.
2494
2495 2012-05-15  James Robinson  <jamesr@chromium.org>
2496
2497         [chromium] Chromium port never sets USE(CG) so code behind it is dead
2498         https://bugs.webkit.org/show_bug.cgi?id=86537
2499
2500         Reviewed by Adrienne Walker.
2501
2502         Deletes code behind USE(CG) in chromium-specific code and removes unneeded USE(SKIA) guards.
2503
2504         * platform/chromium/DragImageRef.h:
2505         (WebCore):
2506         * platform/chromium/MIMETypeRegistryChromium.cpp:
2507         (WebCore::MIMETypeRegistry::isSupportedImageMIMETypeForEncoding):
2508         * platform/chromium/ScrollbarThemeChromiumMac.mm:
2509         (WebCore::ScrollbarThemeChromiumMac::paint):
2510         * platform/chromium/ThemeChromiumMac.mm:
2511         (WebCore::paintStepper):
2512         * platform/graphics/chromium/PlatformImage.cpp:
2513         (WebCore::PlatformImage::updateFromImage):
2514
2515 2012-05-15  Keyar Hood  <keyar@chromium.org>
2516
2517         Skia does not respect a specified InterpolationQuality
2518         https://bugs.webkit.org/show_bug.cgi?id=86249
2519
2520         Reviewed by Stephen White.
2521
2522         The added functionality is not exposed to higher layers of webkit.
2523         Tests will be added that will exercise these changes when bug 82804 is 
2524         fixed.
2525
2526         * platform/graphics/GraphicsContext.cpp:
2527         (WebCore::GraphicsContext::drawImage):
2528         (WebCore::GraphicsContext::drawImageBuffer):
2529         Code to have the useLowQualityScale cause the InterpolationQuality be
2530         be set to low for Chromium but remain as none for other platforms.
2531         * platform/graphics/skia/ImageSkia.cpp:
2532         (WebCore::limitResamplingMode): Added
2533         (WebCore):
2534         (WebCore::paintSkBitmap):
2535         (WebCore::Image::drawPattern):
2536         We now limit the resampling choice based on what InterpolationQuality
2537         is set as. InterpolationNone restricts resampling to RESAMPLE_NONE,
2538         InterpolationLow and InterpolationMedium restricts resampling to
2539         RESAMPLE_LINEAR. InterpolationHigh and InterpolationDefault do not
2540         change the resampling.
2541         
2542         Furthermore, the choice on how to set the filter bitmap flag in
2543         paintSkBitmap was made to be consistent with that in
2544         Image::drawPattern.
2545
2546
2547 2012-05-15  Jeffrey Pfau  <jpfau@apple.com>
2548
2549         ImageDocuments erroneously trigger beforeload events for the main resource
2550         https://bugs.webkit.org/show_bug.cgi?id=86543
2551         <rdar://problem/11309013>
2552
2553         Reviewed by Brady Eidson.
2554
2555         No new tests; testing framework doesn't allow for testing ImageDocuments with injected JavaScript.
2556
2557         * loader/ImageLoader.cpp:
2558         (WebCore::ImageLoader::updateFromElement):
2559
2560 2012-05-15  Dirk Pranke  <dpranke@chromium.org>
2561
2562         [chromium] ScrollElasticityController.mm doesn't compile with the 10.6 SDK on mac
2563         https://bugs.webkit.org/show_bug.cgi?id=86544
2564
2565         Reviewed by Anders Carlsson.
2566
2567         This is a build fix for now until we can figure out what a
2568         better way to approach this is.
2569
2570         * platform/mac/ScrollElasticityController.mm:
2571         (WebCore):
2572
2573 2012-05-15  Nate Chapin  <japhet@chromium.org>
2574
2575         MainResourceLoader::load() always returns true, so make it return
2576         void and delete the related dead code.
2577         https://bugs.webkit.org/show_bug.cgi?id=86413
2578
2579         Reviewed by Alexey Proskuryakov.
2580
2581         No new tests, cleanup only.
2582
2583         * loader/DocumentLoader.cpp:
2584         (WebCore::DocumentLoader::startLoadingMainResource):
2585         * loader/MainResourceLoader.cpp:
2586         (WebCore::MainResourceLoader::load):
2587         * loader/MainResourceLoader.h:
2588         (MainResourceLoader):
2589
2590 2012-05-15  Ian Vollick  <vollick@chromium.org>
2591
2592         [chromium] Ensure animations get ticked at least once when added.
2593         https://bugs.webkit.org/show_bug.cgi?id=86013
2594
2595         Reviewed by James Robinson.
2596
2597         Tested in
2598           CCLayerTreeHostTestTickAnimationWhileBackgrounded.runSingleThreaded
2599           CCLayerTreeHostTestAddAnimationWithTimingFunction.runSingleThreaded
2600           CCLayerTreeHostTestSynchronizeAnimationStartTimes.runSingleThreaded
2601           CCLayerTreeHostTestAnimationFinishedEvents.runSingleThreaded
2602
2603         * platform/graphics/chromium/LayerChromium.cpp:
2604         (WebCore::LayerChromium::addAnimation):
2605         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2606         (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
2607         (WebCore::CCLayerTreeHost::didAddAnimation):
2608         (WebCore):
2609         (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
2610         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2611         (CCLayerTreeHost):
2612         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2613         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
2614         * platform/graphics/chromium/cc/CCProxy.h:
2615         (CCProxy):
2616         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2617         (CCSingleThreadProxyAnimationTimer):
2618         (WebCore::CCSingleThreadProxyAnimationTimer::create):
2619         (WebCore::CCSingleThreadProxyAnimationTimer::CCSingleThreadProxyAnimationTimer):
2620         (WebCore):
2621         (WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
2622         (WebCore::CCSingleThreadProxy::didAddAnimation):
2623         (WebCore::CCSingleThreadProxy::doComposite):
2624         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2625         (WebCore):
2626         * platform/graphics/chromium/cc/CCThreadProxy.h:
2627
2628 2012-05-15  Alexandre Elias  <aelias@google.com>
2629
2630         [chromium] Fix unsafe viewport tag dispatch
2631         https://bugs.webkit.org/show_bug.cgi?id=80554
2632
2633         Reviewed by Adam Barth.
2634
2635         In some uncommon situations (such as window.open() new tab on
2636         Android), dispatchViewportPropertiesDidChange may early-return without
2637         setting the page scale because the window size is not yet
2638         available from the embedder.  At that point, the previous behavior was
2639         to call it again in layoutUpdated(), but this is unsafe since it
2640         leaves a pending needsLayout.
2641
2642         I moved the dispatch call into WebViewImpl::didChangeContentsSize and
2643         WebViewImpl::resize() instead -- these represent more explicitly the
2644         situations where the inputs to the viewport tag calculation change.  I
2645         removed the other dispatch call from setFrameRect as it's now
2646         redundant.
2647
2648         Covered by FixedLayoutInitializeAtMinimumPageScale test introduced
2649         in http://webk.it/82949 (an assertion will fire there without
2650         this fix).
2651
2652         * page/FrameView.cpp:
2653         (WebCore::FrameView::setFrameRect):
2654
2655 2012-05-15  Jer Noble  <jer.noble@apple.com>
2656
2657         r117147 causes a null-deref crash in DOMImplementation::createDocument()
2658         https://bugs.webkit.org/show_bug.cgi?id=86532
2659
2660         Reviewed by James Robinson.
2661
2662         No new tests, but fixes many crashing tests.
2663
2664         Protect against the possibility of being passed a NULL frame in
2665         DOMImplementation::createDocument().
2666
2667         * dom/DOMImplementation.cpp:
2668         (WebCore::DOMImplementation::createDocument):
2669
2670 2012-05-15  Julien Chaffraix  <jchaffraix@webkit.org>
2671
2672         Use posZOrderList() / negZOrderList() everywhere to avoid querying dirtied lists
2673         https://bugs.webkit.org/show_bug.cgi?id=86416
2674
2675         Reviewed by Simon Fraser.
2676
2677         Covered by existing tests that are not ASSERTing after this change.
2678
2679         * rendering/RenderLayerBacking.cpp:
2680         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
2681         * rendering/RenderLayer.cpp:
2682         (WebCore::RenderLayer::update3DTransformedDescendantStatus):
2683         Added a call to updateZOrderLists() to the previous sites as nothing guarantees
2684         that we have recomputed our z-order lists.
2685
2686         (WebCore::RenderLayer::paintLayerContents):
2687         (WebCore::RenderLayer::hitTestLayer):
2688         * rendering/RenderLayerCompositor.cpp:
2689         (WebCore::RenderLayerCompositor::needsContentsCompositingLayer):
2690         Converted those functions to use the safe getters.
2691
2692         * rendering/RenderLayer.h:
2693         (WebCore::RenderLayer::hasNegativeZOrderList):
2694         Newly added funtion to return if we have a negative z-order list.
2695
2696 2012-05-15  Abhishek Arya  <inferno@chromium.org>
2697
2698         Crash due shadow tree parent confusion in SVG.
2699         https://bugs.webkit.org/show_bug.cgi?id=84248
2700
2701         Reviewed by Nikolas Zimmermann.
2702
2703         Test: svg/foreignObject/viewport-foreignobject-crash.html
2704
2705         When we try to make a decision on whether we need an outer
2706         SVGRoot container, we detect if we are in shadow tree or not.
2707         We also need to make sure that our parentOrHostElement is also
2708         an svg element. 
2709
2710         * svg/SVGElement.cpp:
2711         (WebCore::SVGElement::isOutermostSVGSVGElement):
2712
2713 2012-05-15  Lauro Neto  <lauro.neto@openbossa.org>
2714
2715         [File API] URL methods handling null arguments
2716         https://bugs.webkit.org/show_bug.cgi?id=69693
2717
2718         Reviewed by Adam Barth.
2719
2720         Per the latest editor's draft of the File API:
2721         http://dev.w3.org/2006/webapi/FileAPI/#dfn-createObjectURL
2722
2723         Use null instead of undefined as return value when a
2724         null blob is given to URL.createObjectURL.
2725
2726         Test: fast/files/url-null.html
2727
2728         * html/DOMURL.idl:
2729
2730 2012-05-15  Jer Noble  <jer.noble@apple.com>
2731
2732         Unreviewed build fix [Qt].
2733
2734         Protect the definition of DOMImplementationSupportsTypeClient class with
2735         #if ENABLE(VIDEO) so as not to cause compilation errors on ports with
2736         VIDEO disabled.
2737
2738         * dom/DOMImplementation.cpp:
2739
2740 2012-05-14  Jer Noble  <jer.noble@apple.com>
2741
2742         Site-specific hack: Disclaim WebM as a supported type on Mac for YouTube.
2743         https://bugs.webkit.org/show_bug.cgi?id=86409
2744
2745         Reviewed by Darin Adler.
2746
2747         No new tests; site specific hack.
2748
2749         Add a Mac-only site-specific hack which disclaims both video/webm and video/x-flv
2750         as supported types when the media element's document has a host of youtube.com.
2751
2752         Add a new, pure-virtual prototype class for use by MediaPlayer::supportsType:
2753         * platform/graphics/MediaPlayer.h:
2754         (MediaPlayerSupportsTypeClient):
2755         (WebCore::MediaPlayerSupportsTypeClient::~MediaPlayerSupportsTypeClient):
2756         (WebCore::MediaPlayerSupportsTypeClient::mediaPlayerNeedsSiteSpecificHacks):
2757         (WebCore::MediaPlayerSupportsTypeClient::mediaPlayerDocumentHost):
2758
2759         Use these new client calls to determine whether to apply the site-specific
2760         hack:
2761         * platform/graphics/MediaPlayer.cpp:
2762         (WebCore::MediaPlayer::supportsType):
2763
2764         Add this prototype class as a superclass of HTMLMediaElement.  Pass in the
2765         HTMLMediaElement's this pointer when calling MediaPlayer::supportsType():
2766         * html/HTMLMediaElement.cpp:
2767         (WebCore::HTMLMediaElement::canPlayType):
2768         (WebCore::HTMLMediaElement::selectNextSourceChild):
2769         (WebCore::HTMLMediaElement::mediaPlayerNeedsSiteSpecificHacks):
2770         (WebCore::HTMLMediaElement::mediaPlayerDocumentHost):
2771         * html/HTMLMediaElement.h:
2772
2773         As is HTMLMediaElement, a MediaPlayerSupportsTypeClient class is needed. Add a
2774         new class DOMImplementationSupportsTypeClient, an instance of which will be 
2775         passed to MediaPlayer::supportsType():
2776         * dom/DOMImplementation.cpp:
2777         (DOMImplementationSupportsTypeClient):
2778         (WebCore::DOMImplementationSupportsTypeClient::DOMImplementationSupportsTypeClient):
2779         (WebCore::DOMImplementation::createDocument):
2780         (WebCore::DOMImplementation::mediaPlayerNeedsSiteSpecificHacks):
2781         (WebCore::DOMImplementation::mediaPlayerDocumentHost):
2782         * dom/DOMImplementation.h:
2783
2784 2012-05-15  Anders Carlsson  <andersca@apple.com>
2785
2786         Use unaccelerated scrolling deltas when rubber-banding
2787         https://bugs.webkit.org/show_bug.cgi?id=86503
2788         <rdar://problem/11378742>
2789
2790         Reviewed by Sam Weinig.
2791
2792         * WebCore.exp.in:
2793         * platform/PlatformWheelEvent.h:
2794         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2795         (PlatformWheelEvent):
2796         (WebCore::PlatformWheelEvent::scrollCount):
2797         (WebCore::PlatformWheelEvent::unacceleratedScrollingDeltaX):
2798         (WebCore::PlatformWheelEvent::unacceleratedScrollingDeltaY):
2799         Add scroll count and unaccelerated scrolling deltas.
2800
2801         * platform/mac/ScrollElasticityController.mm:
2802         (WebCore::elasticDeltaForTimeDelta):
2803         (WebCore::elasticDeltaForReboundDelta):
2804         (WebCore::reboundDeltaForElasticDelta):
2805         Call the new WKSI functions.
2806
2807         (WebCore::ScrollElasticityController::handleWheelEvent):
2808         Use the unaccelerated scrolling deltas when needed.
2809
2810         * platform/mac/WebCoreSystemInterface.h:
2811         * platform/mac/WebCoreSystemInterface.mm:
2812         Add new WKSI functions.
2813
2814 2012-05-15  Terry Anderson  <tdanderson@chromium.org>
2815
2816         [chromium] Compute the best target node on a GestureTap event
2817         https://bugs.webkit.org/show_bug.cgi?id=85101
2818
2819         Reviewed by Adam Barth.
2820
2821         Using the tests in the touchadjustment/ directory.
2822
2823         * WebCore.gypi:
2824         Include TouchAdjustment.* files.
2825         * page/TouchAdjustment.cpp:
2826         (WebCore::TouchAdjustment::zoomableIntersectionQuotient):
2827         (WebCore::TouchAdjustment::findNodeWithLowestDistanceMetric):
2828         No longer using the INFINITY constant due to problems with compiling
2829         on chromium win.
2830
2831 2012-05-15  Chris Rogers  <crogers@google.com>
2832
2833         Add AudioSummingJunction class to handle fan-in (abstracted from AudioNodeInput)
2834         https://bugs.webkit.org/show_bug.cgi?id=86396
2835
2836         Reviewed by Kenneth Russell.
2837
2838         No new tests.  Existing layout tests already extensively test summing.
2839
2840         * CMakeLists.txt:
2841         * GNUmakefile.list.am:
2842         Add AudioSummingJunction files to makefiles.
2843
2844         * Modules/webaudio/AudioContext.cpp:
2845         * Modules/webaudio/AudioContext.h:
2846         (WebCore::AudioContext::handlePreRenderTasks):
2847         (WebCore::AudioContext::handlePostRenderTasks):
2848         (WebCore::AudioContext::deleteMarkedNodes):
2849         (WebCore::AudioContext::markSummingJunctionDirty):
2850         (WebCore::AudioContext::removeMarkedSummingJunction):
2851         (WebCore::AudioContext::handleDirtyAudioSummingJunctions):
2852         Simple munge from AudioNodeInput -> AudioSummingJunction
2853
2854         * Modules/webaudio/AudioNodeInput.cpp:
2855         * Modules/webaudio/AudioNodeInput.h:
2856         (WebCore::AudioNodeInput::AudioNodeInput):
2857         (WebCore::AudioNodeInput::didUpdate):
2858         Remove logic from AudioNodeInput which now is being moved to AudioSummingJunction.
2859
2860         * Modules/webaudio/AudioSummingJunction.cpp: Added.
2861         * Modules/webaudio/AudioSummingJunction.h: Added.
2862         (WebCore::AudioSummingJunction::AudioSummingJunction):
2863         (WebCore::AudioSummingJunction::~AudioSummingJunction):
2864         (WebCore::AudioSummingJunction::changedOutputs):
2865         (WebCore::AudioSummingJunction::updateRenderingState):
2866         (WebCore::AudioSummingJunction::context):
2867         (WebCore::AudioSummingJunction::numberOfRenderingConnections):
2868         (WebCore::AudioSummingJunction::renderingOutput):
2869         (WebCore::AudioSummingJunction::isConnected):
2870         (WebCore::AudioSummingJunction::numberOfConnections):
2871         Add AudioSummingJunction which is an abstraction to manage/track the connections from AudioNodeOutputs
2872         representing the fan-in points for unity gain summing junctions.
2873
2874         * WebCore.gypi:
2875         * WebCore.xcodeproj/project.pbxproj:
2876         Add AudioSummingJunction files to makefiles.
2877
2878 2012-05-15  Dan Bernstein  <mitz@apple.com>
2879
2880         Ruby annotation is incorrectly identified as a paragraph boundary
2881         https://bugs.webkit.org/show_bug.cgi?id=86507
2882
2883         Reviewed by Darin Adler.
2884
2885         Test: editing/selection/paragraph-with-ruby.html
2886
2887         * editing/htmlediting.cpp:
2888         (WebCore::isBlock): Changed to return false for ruby text.
2889
2890 2012-05-15  Philippe Normand  <pnormand@igalia.com>
2891
2892         [GTK] Un-used GStreamer linker options
2893         https://bugs.webkit.org/show_bug.cgi?id=86407
2894
2895         Reviewed by Martin Robinson.
2896
2897         * GNUmakefile.am: Remove no-longer used webcore_libadd variable.
2898
2899 2012-05-15  Beth Dakin  <bdakin@apple.com>
2900
2901         https://bugs.webkit.org/show_bug.cgi?id=86506
2902         REGRESSION (tiled drawing): No scrollbar while page is loading
2903         -and corresponding
2904         <rdar://problem/11444589>
2905
2906         Reviewed by Anders Carlsson.
2907
2908         We have always had a mechanism in place to suppress painting overlay 
2909         scrollbars while the page is loading. However, that mechaism is 
2910         overriden if the page has been scrolled. It should be, anyway. It was 
2911         not being overriden when the scrolling was handled as a wheel event by 
2912         the scrolling tree. This patch takes advantage of the fact that 
2913         ScrollingTree::handleWheelEvent() already calls back to the main 
2914         thread for handleWheelEventPhase() and just patches 
2915         handleWheelEventPhase to mark m_haveScrolledSincePageLoad as true.
2916         * platform/mac/ScrollAnimatorMac.mm:
2917         (WebCore::ScrollAnimatorMac::handleWheelEventPhase):
2918
2919 2012-05-15  Jessie Berlin  <jberlin@apple.com>
2920
2921         WKContextSetCacheModel(contextref, kWKCacheModelDocumentViewer) doesn't prevent pages from
2922         going into the PageCache.
2923         https://bugs.webkit.org/show_bug.cgi?id=85891
2924
2925         Reviewed by Brady Eidson.
2926
2927         Do not claim that it is possible to cache a page when the page cache has a capacity of 0.
2928
2929         Covered by the modified DOMWindowExtensionNoCache WK2 API test.
2930
2931         * history/PageCache.cpp:
2932         (WebCore::PageCache::canCache):
2933         Check m_capacity.
2934         * history/PageCache.h:
2935
2936         * loader/FrameLoader.cpp:
2937         (WebCore::FrameLoader::commitProvisionalLoad):
2938         canCache is no longer static on PageCache.
2939
2940 2012-05-15  James Robinson  <jamesr@chromium.org>
2941
2942         Unreviewed, rolling out r116811.
2943         http://trac.webkit.org/changeset/116811
2944         https://bugs.webkit.org/show_bug.cgi?id=86257
2945
2946         Introduced layering violation
2947
2948         * WebCore.gypi:
2949
2950 2012-05-15  Darin Adler  <darin@apple.com>
2951
2952         Font copy constructor unnecessarily recalculates transcoding
2953         https://bugs.webkit.org/show_bug.cgi?id=86490
2954
2955         Reviewed by Dan Bernstein.
2956
2957         * platform/graphics/Font.cpp:
2958         (WebCore::Font::Font): Copy m_needsTranscoding instead of recomputing it.
2959
2960 2012-05-15  Andreas Kling  <kling@webkit.org>
2961
2962         Deep copy PluginModuleInfo before passing across thread boundary.
2963         <http://webkit.org/b/86491>
2964         <rdar://problem/11451178>
2965
2966         Reviewed by Anders Carlsson.
2967
2968         * plugins/PluginData.h:
2969         (MimeClassInfo):
2970         (WebCore::MimeClassInfo::isolatedCopy):
2971         (PluginInfo):
2972         (WebCore::PluginInfo::isolatedCopy):
2973
2974 2012-05-15  Sheriff Bot  <webkit.review.bot@gmail.com>
2975
2976         Unreviewed, rolling out r116712.
2977         http://trac.webkit.org/changeset/116712
2978         https://bugs.webkit.org/show_bug.cgi?id=86484
2979
2980         This patch is causing crashes in Chromium Canary builds
2981         (Requested by pilgrim_google__ on #webkit).
2982
2983         * storage/StorageArea.h:
2984         (StorageArea):
2985         * storage/StorageAreaImpl.cpp:
2986         (WebCore::StorageAreaImpl::disabledByPrivateBrowsingInFrame):
2987         (WebCore::StorageAreaImpl::setItem):
2988         (WebCore::StorageAreaImpl::removeItem):
2989         (WebCore::StorageAreaImpl::clear):
2990         * storage/StorageAreaImpl.h:
2991         (StorageAreaImpl):
2992
2993 2012-05-15  Darin Adler  <darin@apple.com>
2994
2995         Optimize save/restore with no drawing operations between them (shows up on some canvas benchmarks)
2996         https://bugs.webkit.org/show_bug.cgi?id=86448
2997
2998         Reviewed by Simon Fraser.
2999
3000         Since canvas programmers sometimes end up doing extra save/restore pairs with no actual drawing
3001         in between, optimize that case by not realizing saves until we have to. This is doubly important
3002         because saves are costly.
3003
3004         * html/canvas/CanvasRenderingContext2D.cpp:
3005         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D): Initialize m_unrealizedSaveCount.
3006         (WebCore::CanvasRenderingContext2D::isAccelerated): Improve performance by calling the
3007         drawingContext function only once.
3008         (WebCore::CanvasRenderingContext2D::reset): Set m_unrealizedSaveCount to 0.
3009         (WebCore::CanvasRenderingContext2D::realizeSavesLoop): Added. Replaces the save function as the
3010         function that actually pushes context onto the state stack.
3011         (WebCore::CanvasRenderingContext2D::restore): Added code to do an early return if we can do the
3012         restore just by decrementing the unrealized save count.
3013         (WebCore::CanvasRenderingContext2D::setStrokeStyle): Added calls to realizeSaves and replaced
3014         calls to state with calls to modifiableState.
3015         (WebCore::CanvasRenderingContext2D::setFillStyle): Ditto.
3016         (WebCore::CanvasRenderingContext2D::setLineWidth): Ditto. Also added an early out for cases where
3017         the line width is not changing.
3018         (WebCore::CanvasRenderingContext2D::setLineCap): Ditto.
3019         (WebCore::CanvasRenderingContext2D::setLineJoin): Ditto.
3020         (WebCore::CanvasRenderingContext2D::setMiterLimit): Ditto.
3021         (WebCore::CanvasRenderingContext2D::setShadowOffsetX): Ditto.
3022         (WebCore::CanvasRenderingContext2D::setShadowOffsetY): Ditto.
3023         (WebCore::CanvasRenderingContext2D::setShadowBlur): Ditto.
3024         (WebCore::CanvasRenderingContext2D::setShadowColor): Ditto.
3025         (WebCore::CanvasRenderingContext2D::setWebkitLineDash): Ditto.
3026         (WebCore::CanvasRenderingContext2D::setWebkitLineDashOffset): Ditto.
3027         (WebCore::CanvasRenderingContext2D::setGlobalAlpha): Ditto.
3028         (WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation): Ditto.
3029         (WebCore::CanvasRenderingContext2D::scale): Ditto.
3030         (WebCore::CanvasRenderingContext2D::rotate): Ditto.
3031         (WebCore::CanvasRenderingContext2D::translate): Ditto.
3032         (WebCore::CanvasRenderingContext2D::transform): Ditto.
3033         (WebCore::CanvasRenderingContext2D::setTransform): Ditto.
3034         (WebCore::CanvasRenderingContext2D::setStrokeColor): Ditto.
3035         (WebCore::CanvasRenderingContext2D::setFillColor): Ditto.
3036         (WebCore::CanvasRenderingContext2D::clip): Ditto.
3037         (WebCore::CanvasRenderingContext2D::clearRect): Changed implementation so it does not save
3038         the graphics context in the common case where shadows, global alpha, and global compositing
3039         operators do not interfer with the function's operation. This allowed us to get rid of the
3040         setAllAttributesToDefault function, which was used nowhere else.
3041         (WebCore::CanvasRenderingContext2D::setShadow): Added a new common bottleneck and made all
3042         the setShadow functions call it.
3043         (WebCore::CanvasRenderingContext2D::clearShadow): Changed to call the new setShadow.
3044         (WebCore::CanvasRenderingContext2D::setFont): Renamed tempDecl to the more friendly
3045         parsedStyle. Changed code structure so the CSS parser is deleted right after parsing is
3046         done. Used string concatenation instead of more expensive string append. Added calls to
3047         realizeSaves and modifiableState.
3048         (WebCore::CanvasRenderingContext2D::setTextAlign): Added calls to realizeSaves and replaced
3049         calls to state with calls to modifiableState. Also added an early out for cases where the
3050         alignment is not changing.
3051         (WebCore::CanvasRenderingContext2D::setTextBaseline): Ditto.
3052
3053         * html/canvas/CanvasRenderingContext2D.h: Made save an inline function that bumps
3054         m_unrealizedSaveCount. Removed setAllAttributesToDefault. Added OVERRIDE for all the
3055         virtual function overrides, and made them all private. Moved m_path down with the other data
3056         members. Renamed the non-const state function to modifiableState. Added a realizeSaves
3057         function and the realizeSavesLoop for the unusual case where there is work to do.
3058         Added m_unrealizedSaveCount.
3059
3060 2012-05-15  Tommy Widenflycht  <tommyw@google.com>
3061
3062         MediaStream API: Setting onended on a LocalMediaStream triggers an assertion in V8
3063         https://bugs.webkit.org/show_bug.cgi?id=86459
3064
3065         Reviewed by Adam Barth.
3066
3067         LocalMediaStream inherits from MediaStream, but only MediaStream have the
3068         EventTarget idl attribute. Adding the attribute to LocalMediaStream as well fixes the issue.
3069
3070         Test: fast/mediastream/LocalMediaStream-onended.html
3071
3072         * Modules/mediastream/LocalMediaStream.idl:
3073
3074 2012-05-15  Terry Anderson  <tdanderson@chromium.org>
3075
3076         [chromium] Remove unused code for tap target fuzzing
3077         https://bugs.webkit.org/show_bug.cgi?id=86252
3078
3079         Reviewed by Adam Barth.
3080
3081         No tests required since this is a cleanup of unused code.
3082
3083         * page/EventHandler.cpp:
3084         (WebCore::EventHandler::handleGestureTap):
3085         * page/EventHandler.h:
3086         (EventHandler):
3087         The touch adjustment code will be used to determine the best target
3088         for a GestureTap event instead of passing in a pre-targeted node.
3089         * platform/PlatformGestureEvent.h:
3090         (WebCore::PlatformGestureEvent::PlatformGestureEvent):
3091         (PlatformGestureEvent):
3092         A rectangular touch region is defined by the touch center and the
3093         delta values only, so gammaX and gammaY are not needed.
3094
3095 2012-05-15  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
3096
3097         [Qt] WebKit with Qt5 hangs on Mac
3098         https://bugs.webkit.org/show_bug.cgi?id=79785
3099
3100         Reviewed by Tor Arne Vestbø.
3101
3102         Delay the initialization of our QNetworkConfigurationManager used in
3103         NetworkStateNotifierPrivate. On Mac it was causing a race condition because it
3104         spawns a thread that triggers a static initializer in Qt, while in the main
3105         thread NetworkStateNotifier is being static initialized. On Mac the lock for
3106         static initializers is shared between all of them, causing a deadlock.
3107
3108         The issue was also reported in http://openradar.appspot.com/11217150.
3109
3110         * platform/network/qt/NetworkStateNotifierPrivate.h:
3111         (NetworkStateNotifierPrivate):
3112         (WebCore::NetworkStateNotifierPrivate::effectivelyOnline):
3113         * platform/network/qt/NetworkStateNotifierQt.cpp:
3114         (WebCore::NetworkStateNotifierPrivate::NetworkStateNotifierPrivate):
3115         (WebCore::NetworkStateNotifierPrivate::setNetworkAccessAllowed):
3116         (WebCore::NetworkStateNotifierPrivate::setOnlineState):
3117         (WebCore::NetworkStateNotifierPrivate::initialize):
3118         (WebCore):
3119         (WebCore::NetworkStateNotifierPrivate::~NetworkStateNotifierPrivate):
3120         (WebCore::NetworkStateNotifier::updateState):
3121         (WebCore::NetworkStateNotifier::NetworkStateNotifier):
3122         (WebCore::NetworkStateNotifier::setNetworkAccessAllowed):
3123
3124 2012-05-15  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3125
3126         Factor HitTestPoint out of HitTestResult.
3127         https://bugs.webkit.org/show_bug.cgi?id=85965
3128
3129         Reviewed by Simon Fraser.
3130
3131         In preparation for handling transformations on area-based hit-testing, 
3132         we need to factor test-point and test-area out of HitTestResult so that
3133         it can be transformed independently.
3134
3135         To maintain the current API as closely as possible HitTestResult now
3136         inherit from HitTestPoint, representing the original untransformed
3137         hitTestPoint.
3138
3139         No change in functionality. No new tests. 
3140
3141         * rendering/HitTestResult.cpp:
3142         (WebCore::HitTestPoint::HitTestPoint):
3143         (WebCore::HitTestPoint::~HitTestPoint):
3144         (WebCore::HitTestPoint::operator=):
3145         (WebCore::HitTestPoint::rectForPoint):
3146         (WebCore::HitTestResult::HitTestResult):
3147         (WebCore::HitTestResult::operator=):
3148         (WebCore::HitTestResult::isSelected):
3149         (WebCore::HitTestResult::spellingToolTip):
3150         (WebCore::HitTestResult::replacedString):
3151         * rendering/HitTestResult.h:
3152         (HitTestPoint):
3153         (WebCore::HitTestPoint::point):
3154         (WebCore::HitTestPoint::roundedPoint):
3155         (WebCore::HitTestPoint::setPoint):
3156         (WebCore::HitTestPoint::isRectBasedTest):
3157         (WebCore::HitTestPoint::topPadding):
3158         (WebCore::HitTestPoint::rightPadding):
3159         (WebCore::HitTestPoint::bottomPadding):
3160         (WebCore::HitTestPoint::leftPadding):
3161         (HitTestResult):
3162         (WebCore::HitTestResult::hitTestPoint):
3163         (WebCore::HitTestPoint::rectForPoint):
3164         * rendering/RenderLayer.cpp:
3165         (WebCore::RenderLayer::hitTestLayer):
3166         (WebCore::RenderLayer::hitTestList):
3167
3168 2012-05-15  Rob Buis  <rbuis@rim.com>
3169
3170         Refactor SVG parts of Node::addEventListener/removeEventListener
3171         https://bugs.webkit.org/show_bug.cgi?id=86426
3172
3173         Reviewed by Nikolas Zimmermann.
3174
3175         Move SVG parts of Node::addEventListener/removeEventListener into svg/. Now we do not
3176         have to check in Node::addEventListener/removeEventListener if we are dealing with an SVG
3177         element. Make tryAddEventListener/tryRemoveEventListener protected methods on Node to be able to use
3178         it in SVGElement.
3179
3180         No new tests, since no change in behavior, just refactoring.
3181
3182         * dom/Node.cpp:
3183         (WebCore::tryAddEventListener):
3184         (WebCore::Node::addEventListener):
3185         (WebCore::tryRemoveEventListener):
3186         (WebCore::Node::removeEventListener):
3187         * svg/SVGElement.cpp:
3188         (WebCore::collectInstancesForSVGElement):
3189         (WebCore):
3190         (WebCore::SVGElement::addEventListener):
3191         (WebCore::SVGElement::removeEventListener):
3192         * svg/SVGElement.h:
3193         (SVGElement):
3194
3195 2012-05-15  Andreas Kling  <kling@webkit.org>
3196
3197         RuleSet::addToRuleSet wastes a bit of Vector capacity.
3198         <http://webkit.org/b/86434>
3199
3200         Reviewed by Antti Koivisto.
3201
3202         Have makeRuleSet call shrinkToFit() on the vectors before returning them.
3203         This avoids wasting space for the rulesets constructed in collectFeatures().
3204
3205         * css/StyleResolver.cpp:
3206         (WebCore::makeRuleSet):
3207
3208 2012-05-15  Darin Adler  <darin@apple.com>
3209
3210         [CG] CGImageCreateWithImageInRect is too slow, but for now we still need to use it
3211         https://bugs.webkit.org/show_bug.cgi?id=86340
3212
3213         Reviewed by Geoffrey Garen.
3214
3215         This patch adds a subimage cache to defray the cost of CGImageCreateWithImageInRect.
3216         Later, we will restructure the code so it doesn't use that function, but at the
3217         moment there are CG issues blocking that change.
3218
3219         * platform/graphics/cg/GraphicsContextCG.cpp:
3220         (SubimageCacheEntry): Added. An entry in the cache.
3221         (SubimageCacheEntryTraits): Added. Traits for the cache.
3222         (SubimageCacheHash): Added. Hash function for the cache.
3223         (SubimageCacheTimer): Added. Timer that clears the cache after a second
3224         of inactivity.
3225         (SubimageCacheWithTimer): Added. Cache and its timer.
3226         (WebCore::subimageCache): Added. Function returning the single global timer.
3227         (WebCore::SubimageCacheTimer::restart): Added. Start the timer.
3228         (WebCore::SubimageCacheTimer::fired): Added. Clear the cache when the timer fires.
3229         (SubimageRequest): Added. A key to look up in the cache.
3230         (SubimageCacheAdder): Added. Translator to add to the cache.
3231         (WebCore::subimage): Added. Puts an entry in the cache.
3232         (WebCore::GraphicsContext::drawNativeImage): Changed to call the subimage function.
3233
3234 2012-05-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
3235
3236         Web Inspector: AdvancedSearchController is not stopped then view is hidden.
3237         https://bugs.webkit.org/show_bug.cgi?id=86466
3238
3239         Reviewed by Vsevolod Vlasov.
3240
3241         AdvancedSearchController overrides "wasHidden" method instead of "willHide".
3242
3243         UI event-flow, not tested.
3244
3245         * inspector/front-end/AdvancedSearchController.js:
3246         (WebInspector.SearchView.prototype.willHide): Renamed function.
3247
3248 2012-05-15  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3249
3250         [Qt] http/tests/xmlhttprequest/xmlhttprequest-check-head-readystate-for-404.html times out
3251         https://bugs.webkit.org/show_bug.cgi?id=84016
3252
3253         Reviewed by Simon Hausmann.
3254
3255         Calling didFail abort the connection and doesn't activate the HEADERS_RECEIVED state.
3256         Since the goal of HEAD is to test then the request should be marked as finished
3257         also in cases of HTTP errors.
3258         This matches other ports behavior.
3259
3260         * platform/network/qt/QNetworkReplyHandler.cpp:
3261         (WebCore::shouldIgnoreHttpError):
3262
3263 2012-05-15  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3264
3265         [Qt][WK2] Fix scrolling in touch mode
3266         https://bugs.webkit.org/show_bug.cgi?id=75006
3267
3268         Reviewed by Kenneth Rohde Christiansen.
3269
3270         * page/FrameView.cpp:
3271         (WebCore::FrameView::setFixedVisibleContentRect):
3272             On changes to fixedVisibleContentRect update scroll-animators position, and
3273             recalculate page-step sizes in scrollbars.
3274         * platform/ScrollView.cpp:
3275         (WebCore::ScrollView::scrollTo):
3276             Forward scrolling-request to the host window.
3277         (WebCore::ScrollView::updateScrollbars):
3278             Allow ScrollViews to have invisible scrollbars when scrolling is delegated.
3279         * platform/ScrollView.h:
3280         (ScrollView):
3281
3282 2012-05-15  Vsevolod Vlasov  <vsevik@chromium.org>
3283
3284         Web Inspector: Refactor SnippetsModel: extract SnippetStorage, make SnippetScriptMapping delegate calls to ScriptSnippetModel and provide public interface on ScriptSnippetModel in terms of uiSourceCodes
3285         https://bugs.webkit.org/show_bug.cgi?id=86477
3286
3287         Reviewed by Pavel Feldman.
3288
3289         Extracted SnippetStorage to be reused for other snippet types.
3290         Made SnippetScriptMapping delegate all calls to ScriptSnippetModel and injected it in DebuggerPresentationModel.
3291         ScriptSnippetModel now provides public interface for ScriptsPanel in terms of uiSourceCodes.
3292
3293         Tests: inspector/debugger/script-snippet-model.html
3294                inspector/snippet-storage.html
3295
3296         * WebCore.gypi:
3297         * WebCore.vcproj/WebCore.vcproj:
3298         * inspector/compile-front-end.py:
3299         * inspector/front-end/DebuggerPresentationModel.js:
3300         (WebInspector.DebuggerPresentationModel):
3301         * inspector/front-end/ScriptSnippetModel.js: Added.
3302         (WebInspector.ScriptSnippetModel):
3303         (WebInspector.ScriptSnippetModel.prototype.get scriptMapping):
3304         (WebInspector.ScriptSnippetModel.prototype.createScriptSnippet):
3305         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
3306         (WebInspector.ScriptSnippetModel.prototype._rawLocationToUILocation):
3307         (WebInspector.ScriptSnippetModel.prototype._uiLocationToRawLocation.get if):
3308         (WebInspector.ScriptSnippetModel.prototype._uiLocationToRawLocation):
3309         (WebInspector.ScriptSnippetModel.prototype._uiSourceCodeList):
3310         (WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
3311         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
3312         (WebInspector.ScriptSnippetModel.prototype._sourceURLForSnippet):
3313         (WebInspector.ScriptSnippetModel.prototype._snippetIdForSourceURL):
3314         (WebInspector.ScriptSnippetModel.prototype._snippetForSourceURL):
3315         (WebInspector.ScriptSnippetModel.prototype._reset):
3316         (WebInspector.SnippetScriptMapping):
3317         (WebInspector.SnippetScriptMapping.prototype.rawLocationToUILocation):
3318         (WebInspector.SnippetScriptMapping.prototype.uiLocationToRawLocation):
3319         (WebInspector.SnippetScriptMapping.prototype.uiSourceCodeList):
3320         (WebInspector.SnippetScriptMapping.prototype.snippetIdForSourceURL):
3321         (WebInspector.SnippetScriptMapping.prototype.addScript):
3322         (WebInspector.SnippetScriptMapping.prototype._uiSourceCodesAdded):
3323         (WebInspector.SnippetScriptMapping.prototype._uiSourceCodesRemoved):
3324         (WebInspector.SnippetScriptMapping.prototype.reset):
3325         (WebInspector.SnippetContentProvider):
3326         * inspector/front-end/SnippetStorage.js: Added.
3327         (WebInspector.SnippetStorage):
3328         (WebInspector.SnippetStorage.prototype.get namePrefix):
3329         (WebInspector.SnippetStorage.prototype._saveSettings):
3330         (WebInspector.SnippetStorage.prototype.set snippets):
3331         (WebInspector.SnippetStorage.prototype.snippetForId):
3332         (WebInspector.SnippetStorage.prototype.deleteSnippet):
3333         (WebInspector.SnippetStorage.prototype._snippetAdded):
3334         (WebInspector.SnippetStorage.prototype.reset.set this):
3335         (WebInspector.Snippet):
3336         (WebInspector.Snippet.fromObject):
3337         (WebInspector.Snippet.prototype.get id):
3338         (WebInspector.Snippet.prototype.get name):
3339         (WebInspector.Snippet.prototype.set name):
3340         (WebInspector.Snippet.prototype.get content):
3341         (WebInspector.Snippet.prototype.set content):
3342         (WebInspector.Snippet.prototype.serializeToObject):
3343         * inspector/front-end/SnippetsModel.js: Removed.
3344         * inspector/front-end/WebKit.qrc:
3345         * inspector/front-end/inspector.html:
3346         * inspector/front-end/inspector.js:
3347
3348 2012-05-15  Pavel Feldman  <pfeldman@chromium.org>
3349
3350         Web Inspector: add show/hide debugger sidebar button.
3351         https://bugs.webkit.org/show_bug.cgi?id=86478
3352
3353         Reviewed by Vsevolod Vlasov.
3354
3355         As with the navigator, but with no overlay. See the screenshot.
3356
3357         * English.lproj/localizedStrings.js:
3358         * inspector/front-end/NavigatorOverlayController.js:
3359         (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
3360         * inspector/front-end/ScriptsPanel.js:
3361         (WebInspector.ScriptsPanel.prototype._debuggerPaused):
3362         (WebInspector.ScriptsPanel.prototype._debuggerResumed):
3363         (WebInspector.ScriptsPanel.prototype._showJavaScriptOutlineDialog):
3364         (WebInspector.ScriptsPanel.prototype._installDebuggerSidebarController.clickHandler):
3365         (WebInspector.ScriptsPanel.prototype._showDebuggerSidebar):
3366         (WebInspector.ScriptsPanel.prototype.set _hideDebuggerSidebar):
3367         * inspector/front-end/scriptsPanel.css:
3368         (#scripts-editor-container-tabbed-pane .tabbed-pane-header-contents):
3369         (button.status-bar-item.scripts-debugger-show-hide-button):
3370         (.status-bar-item.scripts-debugger-show-hide-button > .glyph):
3371         (.status-bar-item.scripts-debugger-show-hide-button.toggled-shown > .glyph):
3372         (.status-bar-item.scripts-debugger-show-hide-button.toggled-hidden > .glyph):
3373
3374 2012-05-15  Zoltan Herczeg  <zherczeg@webkit.org>
3375
3376         NEONizing forceValidPreMultipliedPixels
3377         https://bugs.webkit.org/show_bug.cgi?id=86468
3378
3379         Reviewed by Nikolas Zimmermann.
3380
3381         Optimize forceValidPreMultipliedPixels with ARM-NEON intrinsics.
3382
3383         Existing tests cover this feature.
3384
3385         * platform/graphics/filters/FilterEffect.cpp:
3386         (WebCore::FilterEffect::forceValidPreMultipliedPixels):
3387
3388 2012-05-15  Yury Semikhatsky  <yurys@chromium.org>
3389
3390         Web Inspector: remove unnecessary setTimeout in HeapSnapshotGridNodes.js
3391         https://bugs.webkit.org/show_bug.cgi?id=86464
3392
3393         Reviewed by Pavel Feldman.
3394
3395         * inspector/front-end/HeapSnapshotGridNodes.js:
3396         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren.childrenRetrieved): Posting
3397         a message to worker is already asynchronous, no need to postpone the call via setTimeout.
3398         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren):
3399
3400 2012-05-15  Florin Malita  <fmalita@chromium.org>
3401
3402         Mask deformations when masked content is rotated
3403         https://bugs.webkit.org/show_bug.cgi?id=76527
3404
3405         Reviewed by Nikolas Zimmermann.
3406
3407         Test: svg/repaint/mask-clip-target-transform.svg
3408
3409         RenderSVGResource::markForLayoutAndParentResourceInvalidation() needs to also
3410         invalidate parent mask and clip resources, not just filters.
3411
3412         * rendering/svg/RenderSVGResource.cpp:
3413         (WebCore::removeFromCacheAndInvalidateDependencies):
3414         (WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation):
3415
3416 2012-05-15  Pavel Feldman  <pfeldman@chromium.org>
3417
3418         Web Inspector: merge show navigator with pin navigator buttons.
3419         https://bugs.webkit.org/show_bug.cgi?id=86469
3420
3421         Reviewed by Vsevolod Vlasov.
3422
3423         See screenshots attached to the bug.
3424
3425         * English.lproj/localizedStrings.js:
3426         * inspector/front-end/Images/navigatorPinButton.png: Removed.
3427         * inspector/front-end/Images/navigatorShowHideButton.png:
3428         * inspector/front-end/NavigatorOverlayController.js:
3429         (WebInspector.NavigatorOverlayController.prototype._toggleNavigator):
3430         (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
3431         (WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
3432         (WebInspector.NavigatorOverlayController.prototype.hideNavigatorOverlay):
3433         (WebInspector.NavigatorOverlayController.prototype._containingElementFocused):
3434         * inspector/front-end/SidebarOverlay.js:
3435         (WebInspector.SidebarOverlay):
3436         (WebInspector.SidebarOverlay.prototype.show):
3437         (WebInspector.SidebarOverlay.prototype.hide):
3438         * inspector/front-end/navigatorView.css:
3439         (.navigator-tabbed-pane .tabbed-pane-header-contents):
3440         * inspector/front-end/scriptsPanel.css:
3441         (.status-bar-item.scripts-navigator-show-hide-button > .glyph):
3442         (.status-bar-item.scripts-navigator-show-hide-button.toggled-shown > .glyph):
3443         (.status-bar-item.scripts-navigator-show-hide-button.toggled-overlay > .glyph):
3444         (button.status-bar-item.scripts-navigator-show-hide-button):
3445         (button.status-bar-item.scripts-navigator-show-hide-button.toggled-overlay):
3446
3447 2012-05-15  Yury Semikhatsky  <yurys@chromium.org>
3448
3449         Web Inspector: implement "Reveal in Dominators view" context menu action
3450         https://bugs.webkit.org/show_bug.cgi?id=86455
3451
3452         Reviewed by Pavel Feldman.
3453
3454         Implemented "Reveal in Dominators view" context menu action for objects
3455         in the console.
3456
3457         Test: inspector/profiler/heap-snapshot-reveal-in-dominators-view.html
3458
3459         * English.lproj/localizedStrings.js:
3460         * inspector/front-end/HeapSnapshot.js:
3461         (WebInspector.HeapSnapshot.prototype._nodeForSnapshotObjectId):
3462         (WebInspector.HeapSnapshot.prototype.nodeClassName):
3463         (WebInspector.HeapSnapshot.prototype.dominatorIdsForNode):
3464         * inspector/front-end/HeapSnapshotDataGrids.js:
3465         (WebInspector.HeapSnapshotDominatorsDataGrid):
3466         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.setDataSource):
3467         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.sortingChanged):
3468         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.highlightObjectByHeapSnapshotId.didGetDominators):
3469         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.highlightObjectByHeapSnapshotId.expandNextDominator):
3470         (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.highlightObjectByHeapSnapshotId):
3471         * inspector/front-end/HeapSnapshotGridNodes.js:
3472         (WebInspector.HeapSnapshotGridNode.prototype.childForPosition):
3473         (WebInspector.HeapSnapshotGridNode.prototype.expandWithoutPopulate):
3474         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren.childrenRetrieved):
3475         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren):
3476         (WebInspector.HeapSnapshotGridNode.prototype.sort):
3477         (WebInspector.HeapSnapshotDominatorObjectNode.prototype.retrieveChildBySnapshotObjectId):
3478         (WebInspector.HeapSnapshotDominatorObjectNode.prototype.retrieveChildBySnapshotObjectId.didGetNodePosition):
3479         (WebInspector.HeapSnapshotDominatorObjectNode.prototype.retrieveChildBySnapshotObjectId.didPopulateChildren):
3480         * inspector/front-end/HeapSnapshotProxy.js:
3481         (WebInspector.HeapSnapshotProxy.prototype.dominatorIdsForNode):
3482         * inspector/front-end/ProfilesPanel.js:
3483         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu.revealInSummaryView):
3484         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu.didReceiveHeapObjectId):
3485         (WebInspector.RevealInHeapSnapshotContextMenuProvider.prototype.populateContextMenu):
3486
3487 2012-05-15  Yury Semikhatsky  <yurys@chromium.org>
3488
3489         Web Inspector: exception when switching to heap profiler comparison view
3490         https://bugs.webkit.org/show_bug.cgi?id=86224
3491
3492         Reviewed by Pavel Feldman.
3493
3494         Make sure the messages are dispatched in the same order as they are sent in
3495         case a fake worker is used for heap snapshot processing.
3496
3497         * inspector/front-end/HeapSnapshotProxy.js:
3498         (WebInspector.TimerQueue):
3499         (WebInspector.TimerQueue.prototype.addTask):
3500         (WebInspector.TimerQueue.prototype._onTimeout):
3501         (WebInspector.TimerQueue.prototype._scheduleTimer):
3502         (WebInspector.HeapSnapshotFakeWorker):
3503         (WebInspector.HeapSnapshotFakeWorker.prototype.postMessage):
3504         (WebInspector.HeapSnapshotFakeWorker.prototype._postMessageFromWorker):
3505
3506 2012-05-15  Zoltan Herczeg  <zherczeg@webkit.org>
3507
3508         The ARM NEON optimized filters does not compile on THUMB2
3509         https://bugs.webkit.org/show_bug.cgi?id=86457
3510
3511         Reviewed by Csaba Osztrogonác.
3512
3513         We should disable the compilation on Thumb2 until we fix the code.
3514
3515         * platform/graphics/filters/FEComposite.cpp:
3516         (WebCore::FEComposite::platformArithmeticSoftware):
3517         * platform/graphics/filters/FEGaussianBlur.cpp:
3518         (WebCore::FEGaussianBlur::platformApplyWorker):
3519         (WebCore::FEGaussianBlur::platformApply):
3520         * platform/graphics/filters/FELighting.cpp:
3521         (WebCore::FELighting::platformApply):
3522         * platform/graphics/filters/arm/FECompositeArithmeticNEON.cpp:
3523         * platform/graphics/filters/arm/FECompositeArithmeticNEON.h:
3524         * platform/graphics/filters/arm/FEGaussianBlurNEON.cpp:
3525         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
3526         * platform/graphics/filters/arm/FELightingNEON.cpp:
3527         * platform/graphics/filters/arm/FELightingNEON.h:
3528
3529 2012-05-15  MORITA Hajime  <morrita@google.com>
3530
3531         Kill unnecessary RuntimeEnabledFeatures.h inclusion
3532         https://bugs.webkit.org/show_bug.cgi?id=86451
3533
3534         Reviewed by Kentaro Hara.
3535
3536         No new tests. No behavior change.
3537
3538         * dom/Element.cpp:
3539         * dom/ElementShadow.cpp:
3540         * dom/TreeScope.cpp:
3541
3542 2012-05-14  Shinya Kawanaka  <shinyak@chromium.org> 
3543
3544         document.execCommand('Indent') in the direct child of ShadowRoot causes a crash.
3545         https://bugs.webkit.org/show_bug.cgi?id=86341
3546
3547         Reviewed by Ryosuke Niwa.
3548
3549         When document.execCommand('Indent') is executed in the direct child of ShadowRoot,
3550         the scope variable of TextIterator becomes ShadowRoot. However, an element is assumed for it,
3551         so a crash happended.
3552
3553         This patch enables TextIterator to have ShadowRoot as a scope variable.
3554
3555         Test: editing/shadow/execcommand-indent-in-shadow.html
3556
3557         * WebCore.exp.in:
3558         * editing/ApplyBlockElementCommand.cpp:
3559         (WebCore::ApplyBlockElementCommand::doApply):
3560         * editing/InsertListCommand.cpp:
3561         (WebCore::InsertListCommand::doApply):
3562         * editing/TextIterator.cpp:
3563         (WebCore::TextIterator::rangeFromLocationAndLength):
3564         * editing/TextIterator.h:
3565         (TextIterator):
3566         * editing/htmlediting.cpp:
3567         (WebCore::indexForVisiblePosition):
3568         (WebCore::visiblePositionForIndex):
3569         * editing/htmlediting.h:
3570         (WebCore):
3571
3572 2012-05-14  Shinya Kawanaka  <shinyak@chromium.org>
3573
3574         Node::shadowTreeRootNode() should return ShadowRoot instead of Node.
3575         https://bugs.webkit.org/show_bug.cgi?id=86428
3576
3577         Reviewed by Hajime Morita.
3578
3579         Since Node::shadowTreeRootNode() returns only ShadowRoot or 0 now, its return type should be ShadowRoot.
3580         This patch changes the return type and adds include directive to build.
3581
3582         No new tests, no change in behavior.
3583
3584         * dom/Node.cpp:
3585         (WebCore::Node::shadowAncestorNode):
3586         (WebCore::Node::shadowTreeRootNode):
3587         * dom/Node.h:
3588         (WebCore):
3589         (Node):
3590         * dom/NodeRenderingContext.cpp:
3591         (WebCore::NodeRenderingContext::NodeRenderingContext):
3592         * dom/Range.cpp:
3593         (WebCore::Range::shadowTreeRootNode):
3594         * dom/Range.h:
3595         (Range):
3596         * editing/Editor.cpp:
3597         * editing/TextIterator.cpp:
3598         * editing/htmlediting.cpp:
3599         * html/shadow/ContentSelectorQuery.cpp:
3600         * html/shadow/HTMLContentElement.cpp:
3601         (WebCore::HTMLContentElement::parseAttribute):
3602         * html/shadow/InsertionPoint.cpp:
3603         (WebCore::InsertionPoint::detach):
3604         * page/EventHandler.cpp:
3605
3606 2012-05-14  Luke Macpherson  <macpherson@chromium.org>
3607
3608         Make StyleResolver::applyMatchedProperties and ::applyProperties use enum template parameter instead of bool.
3609         https://bugs.webkit.org/show_bug.cgi?id=86424
3610
3611         Reviewed by Dimitri Glazkov.
3612
3613         This patch changes from using a boolean template parameter for StyleResolver::applyMatchedProperties and
3614         StyleResolver::applyProperties functions. The motivation for this change is that it paves the way for
3615         CSS Variables to make the value tri-state, which is a requirement because variable definitions must occur
3616         before high priority CSS properties such that they can be referenced by the latter. This change affects
3617         only the type signatures of those functions, and not their behavior.
3618
3619         * css/StyleResolver.cpp:
3620         (WebCore::StyleResolver::collectMatchingRulesForList):
3621         * css/StyleResolver.h:
3622
3623 2012-05-14  MORITA Hajime  <morrita@google.com>
3624
3625         [Refactoring] Get rid of ContentDistribution::Item
3626         https://bugs.webkit.org/show_bug.cgi?id=86350
3627
3628         This change replaces the linked list on ContentDistribution with a Vector.
3629         We no longer link item class ContentDistribution::Item.
3630         This simplification also allows ContentDistribution to go.
3631         ContentDistribution is now just a typedef of Vector<RefPtr<Node> >.
3632
3633         Reviewed by Dimitri Glazkov.
3634
3635         No new tests. Covered by existing tests.
3636
3637         * dom/ComposedShadowTreeWalker.cpp:
3638         (WebCore::ComposedShadowTreeWalker::traverseNode):
3639         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
3640         * dom/ElementShadow.cpp:
3641         * dom/ElementShadow.h:
3642         (ElementShadow):
3643         * dom/NodeRenderingContext.cpp:
3644         (WebCore::nextRendererOfInsertionPoint):
3645         (WebCore::previousRendererOfInsertionPoint):
3646         (WebCore::firstRendererOfInsertionPoint):
3647         (WebCore::lastRendererOfInsertionPoint):
3648         * html/shadow/ContentDistributor.cpp:
3649         (WebCore::ContentDistributor::distribute):
3650         (WebCore::ContentDistributor::clearDistribution):
3651         (WebCore::ContentDistributor::findInsertionPointFor):
3652         * html/shadow/ContentDistributor.h:
3653         (WebCore):
3654         (ContentDistributor):
3655         * html/shadow/InsertionPoint.cpp:
3656         (WebCore::InsertionPoint::InsertionPoint):
3657         (WebCore::InsertionPoint::attachDistributedNode):
3658         (WebCore::InsertionPoint::assignShadowRoot):
3659         (WebCore::InsertionPoint::nextTo):
3660         (WebCore):
3661         (WebCore::InsertionPoint::previousTo):
3662         * html/shadow/InsertionPoint.h: Added a set of delegate method to m_distribution.
3663         (WebCore::InsertionPoint::hasDistribution):
3664         (WebCore::InsertionPoint::indexOf):
3665         (WebCore::InsertionPoint::size):
3666         (WebCore::InsertionPoint::at):
3667         (WebCore::InsertionPoint::first):
3668         (WebCore::InsertionPoint::last):
3669         (InsertionPoint):
3670
3671 2012-05-14  Tim Horton  <timothy_horton@apple.com>
3672
3673         RenderLayer::repaintRectIncludingDescendants shouldn't include repaint rects of composited descendants
3674         https://bugs.webkit.org/show_bug.cgi?id=86429
3675         <rdar://problem/11445132>
3676
3677         Reviewed by Simon Fraser.
3678
3679         Change repaintRectIncludingDescendants to not include repaint rects for composited child layers,
3680         and rename the function to make it more clear that that's what it does now.
3681
3682         No new tests, scrolling performance optimization.
3683
3684         * page/FrameView.cpp:
3685         (WebCore::FrameView::scrollContentsFastPath):
3686         * rendering/RenderLayer.cpp:
3687         (WebCore::RenderLayer::repaintRectIncludingNonCompositingDescendants):
3688         * rendering/RenderLayer.h:
3689         (RenderLayer):
3690
3691 2012-05-14  Gavin Peters  <gavinp@chromium.org>
3692
3693         Add Prerenderer, PrerenderHandle and a chromium interface for Prerendering.
3694         https://bugs.webkit.org/show_bug.cgi?id=85005
3695
3696         Reviewed by Adam Barth.
3697
3698         The prerender case isn't quite a resource load, and using resource loading to
3699         retrieve them has constrained the API, and unnecessarily complicated the loader.
3700
3701         The new Prerenderer and PrerenderHandle let <link rel=prerender...> elements signal
3702         removal and unload to their platform.
3703
3704         No new tests, as this interface requires a full platform to work, and doesn't affect layout.  Test
3705         it with your platform when implemented for it.
3706
3707         * GNUmakefile.list.am:
3708         * Target.pri:
3709         * WebCore.gypi:
3710         * WebCore.vcproj/WebCore.vcproj:
3711         * WebCore.xcodeproj/project.pbxproj:
3712         * dom/Document.cpp:
3713         (WebCore::Document::Document):
3714         * dom/Document.h:
3715         (WebCore):
3716         (Document):
3717         (WebCore::Document::prerenderer):
3718         * html/HTMLLinkElement.cpp:
3719         (WebCore::HTMLLinkElement::removedFrom):
3720         * html/LinkRelAttribute.cpp:
3721         (WebCore::LinkRelAttribute::LinkRelAttribute):
3722         * html/LinkRelAttribute.h:
3723         (LinkRelAttribute):
3724         * loader/LinkLoader.cpp:
3725         (WebCore::LinkLoader::loadLink):
3726         (WebCore::LinkLoader::released):
3727         * loader/LinkLoader.h:
3728         (WebCore):
3729         (LinkLoader):
3730         * loader/Prerenderer.cpp: Added.
3731         (WebCore):
3732         (WebCore::Prerenderer::create):
3733         (WebCore::Prerenderer::Prerenderer):
3734         (WebCore::Prerenderer::~Prerenderer):
3735         (WebCore::Prerenderer::render):
3736         (WebCore::Prerenderer::stop):
3737         (WebCore::Prerenderer::suspend):
3738         (WebCore::Prerenderer::resume):
3739         (WebCore::Prerenderer::document):
3740         (WebCore::Prerenderer::client):
3741         * loader/Prerenderer.h: Copied from Source/Platform/chromium/public/WebPrerender.h.
3742         (WebCore):
3743         (Prerenderer):
3744         * loader/PrerendererClient.cpp: Copied from Source/WebCore/html/LinkRelAttribute.h.
3745         (WebCore):
3746         (WebCore::PrerendererClient::supplementName):
3747         (WebCore::PrerendererClient::from):
3748         (WebCore::providePrerendererClientTo):
3749         * loader/PrerendererClient.h: Copied from Source/WebCore/html/LinkRelAttribute.h.
3750         (WebCore):
3751         (PrerendererClient):
3752         (WebCore::PrerendererClient::~PrerendererClient):
3753         (WebCore::PrerendererClient::PrerendererClient):
3754         * loader/cache/CachedResource.cpp:
3755         (WebCore::defaultPriorityForResourceType):
3756         (WebCore::cachedResourceTypeToTargetType):
3757         (WebCore::CachedResource::load):
3758         * loader/cache/CachedResource.h:
3759         (WebCore::CachedResource::ignoreForRequestCount):
3760         * loader/cache/CachedResourceLoader.cpp:
3761         (WebCore::createResource):
3762         (WebCore::CachedResourceLoader::requestLinkResource):
3763         (WebCore::CachedResourceLoader::checkInsecureContent):
3764         (WebCore::CachedResourceLoader::canRequest):
3765         * platform/PrerenderHandle.h: Copied from Source/Platform/chromium/public/WebPrerender.h.
3766         (WebCore):
3767         (PrerenderHandle):
3768         * platform/chromium/Prerender.cpp: Added.
3769         (WebCore):
3770         (WebCore::Prerender::Prerender):
3771         (WebCore::Prerender::~Prerender):
3772         (WebCore::Prerender::setState):
3773         (WebCore::Prerender::add):
3774         (WebCore::Prerender::cancel):
3775         (WebCore::Prerender::abandon):
3776         (WebCore::Prerender::suspend):
3777         (WebCore::Prerender::resume):
3778         * platform/chromium/Prerender.h: Copied from Source/Platform/chromium/public/WebPrerender.h.
3779         (WebCore):
3780         (Prerender):
3781         (ExtraData):
3782         (WebCore::Prerender::ExtraData::~ExtraData):
3783         (WebCore::Prerender::url):
3784         (WebCore::Prerender::referrer):
3785         (WebCore::Prerender::referrerPolicy):
3786         (WebCore::Prerender::setExtraData):
3787         (WebCore::Prerender::extraData):
3788         * platform/chromium/PrerenderHandle.cpp: Copied from Source/Platform/chromium/public/WebPrerender.h.
3789         (WebCore):
3790         (WebCore::PrerenderHandle::create):
3791         (WebCore::PrerenderHandle::PrerenderHandle):
3792         (WebCore::PrerenderHandle::~PrerenderHandle):
3793         (WebCore::PrerenderHandle::prerender):
3794         (WebCore::PrerenderHandle::add):
3795         (WebCore::PrerenderHandle::cancel):
3796         (WebCore::PrerenderHandle::abandon):
3797         (WebCore::PrerenderHandle::suspend):
3798         (WebCore::PrerenderHandle::resume):
3799         (WebCore::PrerenderHandle::url):
3800         (WebCore::PrerenderHandle::referrer):
3801         (WebCore::PrerenderHandle::referrerPolicy):
3802         * platform/chromium/support/WebPrerender.cpp: Copied from Source/Platform/chromium/public/WebPrerender.h.
3803         (WebKit::WebPrerender::WebPrerender):
3804         (WebKit):
3805         (WebKit::WebPrerender::~WebPrerender):
3806         (WebKit::WebPrerender::url):
3807         (WebKit::WebPrerender::referrer):
3808         (WebKit::WebPrerender::referrerPolicy):
3809         (WebKit::WebPrerender::setExtraData):
3810         (WebKit::WebPrerender::extraData):
3811         * platform/network/blackberry/ResourceRequest.h:
3812         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
3813         (WebCore::platformTargetTypeForRequest):
3814         * platform/network/chromium/ResourceRequest.h:
3815
3816 2012-05-14  Luke Macpherson  <macpherson@chromium.org>
3817
3818         Introduce ENABLE_CSS_VARIABLES compile flag.
3819         https://bugs.webkit.org/show_bug.cgi?id=86338
3820
3821         Reviewed by Dimitri Glazkov.
3822
3823         Add a configuration option for CSS Variables support, disabling it by default.
3824
3825         No new tests. This patch only introduces an unused build flag.
3826
3827         * Configurations/FeatureDefines.xcconfig:
3828
3829 2012-05-14  Eric Seidel  <eric@webkit.org>
3830
3831         Styles are not recalculated when the seamless attribute is dynamically added/removed
3832         https://bugs.webkit.org/show_bug.cgi?id=86315
3833
3834         Reviewed by Andreas Kling.
3835
3836         Covered by fast/frames/seamless/seamless-css-cascade.html.
3837
3838         * html/HTMLIFrameElement.cpp:
3839         (WebCore::HTMLIFrameElement::isPresentationAttribute):
3840          - Make seamless a presentational attribute, which means style on the <iframe> will
3841            be forced to recalculate when it changes.  This is correct, but not observable
3842            until the layout changes are landed (as then the iframe should correctly revert to not
3843            being sized to fit its content if seamless is removed).
3844         (WebCore::HTMLIFrameElement::parseAttribute):
3845          - When the seamless attribute is added or remove, force the content document to recalc
3846            its style resolver, which will refresh the list of inherited stylesheets from the
3847            parent.  This doesn't need to happen synchronously.  When the layout changes land
3848            the content document will actually cause that recalc to redirect to the parent document
3849            in the seamless case anyway, but it's more correct to ask the content document directly.
3850
3851 2012-05-14  Alexandre Elias  <aelias@google.com>
3852
3853         [chromium] Prevent KeyCodeConversionAndroid from breaking on next NDK roll
3854         https://bugs.webkit.org/show_bug.cgi?id=86415
3855
3856         Reviewed by Adam Barth.
3857
3858         The new enum values added in this file have been added in recent
3859         versions of the NDK, so this file will fail to compile with duplicate
3860         enum error when we roll NDK to r7c or higher.  A workaround is
3861         to move our enum values to the WebCore namespace.  When the NDK
3862         upgrade is complete, we can delete them.
3863
3864         No new tests. (No-op change.)
3865
3866         * platform/chromium/KeyCodeConversionAndroid.cpp:
3867         (WebCore):
3868
3869 2012-05-14  Beth Dakin  <bdakin@apple.com>
3870
3871         https://bugs.webkit.org/show_bug.cgi?id=86420
3872         ScrollbarPainter should support expansionTransitionProgress
3873
3874         Reviewed by Sam Weinig.
3875
3876         expansionTransitionProgress works the same as 
3877         uiStateTransitionProgress. This code just echoes that code, but for 
3878         expansion instead of uiState.
3879         * platform/mac/NSScrollerImpDetails.h:
3880         * platform/mac/ScrollAnimatorMac.mm:
3881         (supportsExpansionTransitionProgress):
3882         (-[WebScrollbarPartAnimation setCurrentProgress:]):
3883         (-[WebScrollbarPainterDelegate cancelAnimations]):
3884         (-[WebScrollbarPainterDelegate scrollerImp:animateExpansionTransitionWithDuration:]):
3885         (-[WebScrollbarPainterDelegate invalidate]):
3886
3887 2012-05-14  Andy Estes  <aestes@apple.com>
3888
3889         Fix RunLoopCF.cpp's copyright string.
3890
3891         * platform/cf/RunLoopCF.cpp:
3892
3893 2012-05-14  Andy Estes  <aestes@apple.com>
3894
3895         Move the parts of RunLoopMac.mm that aren't Mac-specific into RunLoopCF.cpp
3896         https://bugs.webkit.org/show_bug.cgi?id=86411
3897
3898         Reviewed by Anders Carlsson.
3899
3900         Most of RunLoopMac.mm was written in terms of CF API. Move these bits
3901         to a new file called RunLoopCF.cpp, leaving only the bits dealing with
3902         NSApplication.
3903
3904         * WebCore.xcodeproj/project.pbxproj: Xcode decided to give
3905         VisitedLinks.* new UUIDs. I'll allow it.
3906         * platform/cf/RunLoopCF.cpp: Copied from Source/WebCore/platform/mac/RunLoopMac.mm.
3907         * platform/mac/RunLoopMac.mm:
3908
3909 2012-05-14  Erik Arvidsson  <arv@chromium.org>
3910
3911         [V8] Add "stack" property to DOMException
3912         https://bugs.webkit.org/show_bug.cgi?id=85057
3913
3914         Reviewed by Kentaro Hara.
3915
3916         When we create a DOM exception we define a V8 accessor for the stack property. This
3917         accessor uses a new Error object to get the underlying stack string.
3918
3919         Test: fast/dom/DOMException/stack-trace.html
3920
3921         * bindings/v8/V8Proxy.cpp:
3922         (WebCore::DOMExceptionStackGetter):
3923         (WebCore):
3924         (WebCore::DOMExceptionStackSetter):
3925         (WebCore::V8Proxy::setDOMException):
3926
3927 2012-05-14  Michael Saboff  <msaboff@apple.com>
3928
3929         Enh: Add the Ability to Disable / Enable JavaScript GC Timer
3930         https://bugs.webkit.org/show_bug.cgi?id=86382
3931
3932         Reviewed by Darin Adler.
3933
3934         Plumbing to set / clear JS GC activity timer enable flag.
3935
3936         * WebCore.exp.in:
3937         * bindings/js/GCController.cpp:
3938         (WebCore::GCController::setJavaScriptGarbageCollectorTimerEnabled):
3939         * bindings/js/GCController.h:
3940
3941 2012-05-14  Nate Chapin  <japhet@chromium.org>
3942
3943         [V8] Crash in npObjectGetProperty() in V8NPObject.cpp
3944         https://bugs.webkit.org/show_bug.cgi?id=86131
3945
3946         Reviewed by Adam Barth.
3947
3948         Tests: plugins/npruntime/delete-plugin-within-getProperty.html
3949                plugins/npruntime/delete-plugin-within-hasProperty-return-false.html
3950                plugins/npruntime/delete-plugin-within-hasProperty-return-true.html
3951                plugins/npruntime/delete-plugin-within-invoke.html
3952                plugins/npruntime/delete-plugin-within-setProperty.html
3953
3954         * bindings/v8/NPV8Object.cpp:
3955         (_NPN_EvaluateHelper):
3956         * bindings/v8/V8NPObject.cpp: Check NPN_IsAlive in a bunch of places we're not currently.
3957         (WebCore::npObjectInvokeImpl):
3958         (WebCore::npObjectGetProperty):
3959         (WebCore::npObjectSetProperty):
3960
3961 2012-05-14  Brent Fulgham  <bfulgham@webkit.org>
3962
3963         [WinCairo] Unreviewed build correction.
3964
3965         * platform/win/DragImageCairoWin.cpp: Add missing include for
3966         new NativeImageCairo.h type.
3967
3968 2012-05-14  Takashi Sakamoto  <tasak@google.com>
3969
3970         Crash in WebCore::RenderObject::repaint
3971         https://bugs.webkit.org/show_bug.cgi?id=86162
3972
3973         Reviewed by Abhishek Arya.
3974
3975         As RenderScrollbarPart has no parent renderer, we crash in
3976         WebCore::RenderBoxModelObject::paddingLeft when paddingLeft has
3977         percent value, e.g. 5%. However if we set the scrollbar's parent
3978         renderer to a renderer owning the scrollbar by using setParent method,
3979         RenderScrollbarPart::styleWillChange will invoke parent renderer's
3980         repaint. This causes crash in WebCore::RenderObject::repaint if the
3981         owning renderer is already destroyed.
3982         To fix the first crash without the second crash, modify
3983         RenderObject::containingBlock() to check isRenderScrollbarPart or not,
3984         if parent() is 0.
3985         If so, use scrollbar's owningRenderer from RenderScrollbarPart.
3986
3987         Test: scrollbars/scrollbar-percent-padding-crash.html
3988               scrollbars/scrollbar-scrollbarparts-repaint-crash.html
3989
3990         * rendering/RenderObject.cpp:
3991         (WebCore::RenderObject::containingBlock):
3992         Modifying containingBlock. If parent() is 0 and isRenderScrollbarPart()
3993         is true, use RenderScrollbarPart's m_scrollbar->owningRenderer()
3994         instead of parent().
3995         * rendering/RenderObject.h:
3996         (WebCore::RenderObject::isRenderScrollbarPart):
3997         (RenderObject):
3998         Adding a new method, isRenderScrollbarPart.
3999         * rendering/RenderScrollbarPart.cpp:
4000         (WebCore::RenderScrollbarPart::rendererOwningScrollbar):
4001         (WebCore):
4002         Adding a new method, scrollbarOwningRenderer to obtain m_scrollar's
4003         owningRenderer.
4004         * rendering/RenderScrollbarPart.h:
4005         (RenderScrollbarPart):
4006         Removing "friend class RenderScrollbar".
4007         (WebCore::RenderScrollbarPart::isRenderScrollbarPart):
4008         (WebCore::toRenderScrollbarPart):
4009         (WebCore):
4010         Implementing isRenderScrollbarPart and toRenderScrollbarPart.
4011
4012 2012-05-14  Mike West  <mike@mikewest.org>
4013
4014         Content Security Policy console errors include violated directive.
4015         https://bugs.webkit.org/show_bug.cgi?id=86323
4016
4017         Reviewed by Adam Barth.
4018
4019         Console errors generated when resources, inline script/style, or eval
4020         are blocked by Content Security Policy directives should include the
4021         text of the directive that's been violated. This gives developers more
4022         of the information they need to resolve the issue.
4023
4024         Test: http/tests/security/contentSecurityPolicy/*
4025
4026         * page/ContentSecurityPolicy.cpp:
4027         (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
4028         (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
4029         (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
4030         (WebCore::CSPDirectiveList::allowJavaScriptURLs):
4031         (WebCore::CSPDirectiveList::allowInlineEventHandlers):
4032         (WebCore::CSPDirectiveList::allowInlineScript):
4033         (WebCore::CSPDirectiveList::allowInlineStyle):
4034         (WebCore::CSPDirectiveList::allowEval):
4035
4036 2012-05-14  Julien Chaffraix  <jchaffraix@webkit.org>
4037
4038         Crash in FrameView::windowClipRectForFrameOwner after r116371
4039         https://bugs.webkit.org/show_bug.cgi?id=86035
4040
4041         Reviewed by David Hyatt.
4042
4043         Added a NULL-check for |parentView| as nothing guarantees it to be
4044         non-NULL. Unfortunately no test as this is a crasher I couldn't
4045         reproduce on my machine and the user logs were not helpful.
4046
4047         * page/FrameView.cpp:
4048         (WebCore::FrameView::windowClipRect):
4049
4050 2012-05-14  Beth Dakin  <bdakin@apple.com>
4051
4052         https://bugs.webkit.org/show_bug.cgi?id=86403
4053         ASSERTION FAILED: m_verticalScrollbarPainterDelegate on recent builds
4054         -and corresponding-
4055         <rdar://problem/11448841>
4056
4057         Reviewed by Simon Fraser.
4058
4059         http://trac.webkit.org/changeset/116476 accidentally started calling 
4060         these functions for custom scrollbars. This change replaces that 
4061         guard.
4062         * rendering/RenderLayer.cpp:
4063         (WebCore::RenderLayer::destroyScrollbar):
4064
4065 2012-05-14  Simon Fraser  <simon.fraser@apple.com>
4066
4067         Remove redundant pixel snapping in calculateCompositedBounds()
4068         https://bugs.webkit.org/show_bug.cgi?id=86400
4069