5fba3939f1900f55d2a8c0f8cd5d2f200e5967fb
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-09-11  Dimitri Glazkov  <dglazkov@chromium.org>
2
3         Remove StyleResolver::setStyle, because it's no longer used.
4         https://bugs.webkit.org/show_bug.cgi?id=96423
5
6         Reviewed by Eric Seidel.
7
8         No new tests, simple refactoring.
9
10         * css/StyleResolver.h: Removed unused function.
11
12 2012-09-11  Chris Fleizach  <cfleizach@apple.com>
13
14         AX: title attribute is not exposed as the AXDescription on AXImage when there is no other fallback content
15         https://bugs.webkit.org/show_bug.cgi?id=96412
16
17         Reviewed by Jon Honeycutt.
18
19         Ensure that if an image has a title attribute, but no alt attribute, it will fallback to use the title attribute 
20         for the descriptive text.
21
22         Test: accessibility/img-fallsback-to-title.html
23
24         * accessibility/AccessibilityRenderObject.cpp:
25         (WebCore::AccessibilityRenderObject::accessibilityDescription):
26
27 2012-09-11  Rik Cabanier  <cabanier@adobe.com>
28
29         Clean up functions in RenderLayerBacking.h/.cpp
30         https://bugs.webkit.org/show_bug.cgi?id=96370
31
32         Reviewed by Simon Fraser.
33
34         Remove 'layer' from function names in RenderLayerBacking
35
36         No new test. No change in functionality.
37
38         * rendering/RenderLayerBacking.cpp:
39         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
40         (WebCore::RenderLayerBacking::updateOpacity):
41         (WebCore::RenderLayerBacking::updateTransform):
42         (WebCore::RenderLayerBacking::updateFilters):
43         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
44         (WebCore::RenderLayerBacking::startTransition):
45         * rendering/RenderLayerBacking.h:
46         (RenderLayerBacking):
47
48 2012-09-11  Stephen White  <senorblanco@chromium.org>
49
50         [skia] Switch FEComponentTransfer filter to use skia's SkColorFilter
51         https://bugs.webkit.org/show_bug.cgi?id=95238
52
53         Reviewed by Dirk Schulze.
54
55         Covered by existing tests in svg/, such as svg/custom/feComponentTransfer-Discrete.svg.
56
57         * WebCore.gypi:
58         * platform/graphics/filters/FEComponentTransfer.cpp:
59         (WebCore::FEComponentTransfer::platformApplySoftware):
60         Add a check for the skia implementation.
61         (WebCore::FEComponentTransfer::getValues):
62         * platform/graphics/filters/FEComponentTransfer.h:
63         Factor out the retrieval of LUT values into its own function, so we
64         can call it from the Skia implementation.
65         * platform/graphics/filters/skia/FEComponentTransferSkia.cpp: Added.
66         (WebCore::FEComponentTransfer::platformApplySkia):
67
68 2012-09-11  Kevin Ellis  <kevers@chromium.org>
69
70         Crash on a long press gesture when touch adjustment is enabled.
71         https://bugs.webkit.org/show_bug.cgi?id=96313
72
73         Reviewed by Antonio Gomes.
74
75         Fix to ensure that a long-press on a shadow-DOM element does not 
76         trigger a crash in TouchAdjustment::providesContextMenuItems.
77         Prior to the patch, a null-pointer exception was trigger because
78         of a null renderer in the check.
79
80         Test: touchadjustment/context-menu-shadow-node.html
81
82         * page/TouchAdjustment.cpp:
83         (WebCore::TouchAdjustment::providesContextMenuItems):
84
85 2012-09-11  Zan Dobersek  <zandobersek@gmail.com>
86
87         Unreviewed, manually rolling out r128175.
88         The patch is causing crashes in debug builds.
89         http://trac.webkit.org/changeset/128175
90         https://bugs.webkit.org/show_bug.cgi?id=96284
91
92         * platform/network/soup/ResourceResponseSoup.cpp:
93         (WebCore::ResourceResponse::updateFromSoupMessage):
94
95 2012-09-11  James Robinson  <jamesr@chromium.org>
96
97         Unreviewed, rolling out r128212.
98         http://trac.webkit.org/changeset/128212
99         https://bugs.webkit.org/show_bug.cgi?id=96037
100
101         Assertion fails on linux 64
102
103         * Modules/indexeddb/IDBLevelDBCoding.cpp:
104         (WebCore::IDBLevelDBCoding::extractEncodedIDBKey):
105         (WebCore::IDBLevelDBCoding::compareEncodedIDBKeys):
106         (IDBLevelDBCoding):
107         (WebCore::IDBLevelDBCoding::compare):
108
109 2012-09-11  Joshua Bell  <jsbell@chromium.org>
110
111         IndexedDB: IDBObjectStore.count() is slow
112         https://bugs.webkit.org/show_bug.cgi?id=96033
113
114         Reviewed by Tony Chang.
115
116         Avoid decoding record values when performing count() iteration, and factor out common code
117         used for initializing object store and index cursors. Also, remove unused indexDataId()
118         methods (which date back to the SQLite backing store), and rename some p's and q's.
119
120         No new tests - no functional changes. Covered by existing test:
121             LayoutTests/storage/indexeddb/objectstore-count.html
122
123         * Modules/indexeddb/IDBBackingStore.h: Expose new (internal) ObjectStoreKeyCursor
124         (IDBBackingStore):
125         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
126         (WebCore): Factor out common CursorOptions initialization code. The objectStoreCursorOptions()
127         function is needed for this patch. The indexCursorOptions() function is not, but eliminates
128         duplicated code and is a nearly identical refactor.
129         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor): Refactor.
130         (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor): Implement.
131         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor): Refactor.
132         (WebCore::IDBLevelDBBackingStore::openIndexCursor): Ditto.
133         * Modules/indexeddb/IDBLevelDBBackingStore.h:
134         (IDBLevelDBBackingStore):
135         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
136         (WebCore::IDBObjectStoreBackendImpl::countInternal): Use ObjectStoreKeyCursor for iteration.
137
138 2012-09-11  Ojan Vafai  <ojan@chromium.org>
139
140         Refactor computePercentageLogicalHeight to simplify the logic a bit
141         https://bugs.webkit.org/show_bug.cgi?id=96329
142
143         Reviewed by Tony Chang.
144
145         This makes it clear that the value we're computing as we go is the availableHeight.
146
147         * rendering/RenderBox.cpp:
148         (WebCore::RenderBox::computePercentageLogicalHeight):
149
150 2012-09-11  Joshua Bell  <jsbell@chromium.org>
151
152         IndexedDB: Optimize key decode and comparison operations
153         https://bugs.webkit.org/show_bug.cgi?id=96037
154
155         Reviewed by Tony Chang.
156
157         Eliminate memory allocations in code identified as CPU bottlenecks in IDB profiling.
158
159         No new tests - just performance work.
160
161         * Modules/indexeddb/IDBLevelDBCoding.cpp:
162         (WebCore::IDBLevelDBCoding::extractEncodedIDBKey): Avoid incremental allocations.
163         (WebCore::IDBLevelDBCoding::compareEncodedIDBKeys): Rename confusing variables p and q.
164         (IDBLevelDBCoding):
165         (WebCore::IDBLevelDBCoding::compare): Rename from decodeAndCompare, and add specializations
166         for frequently encountered types (e.g. object/index data) that can be compared without a
167         full decode.
168
169 2012-09-11  Marcelo Lira  <marcelo.lira@openbossa.org>
170
171         Restore original value of mock scrollbars enabled in InternalSettings
172         https://bugs.webkit.org/show_bug.cgi?id=87680
173
174         Reviewed by Adam Barth.
175
176         Added backup support for mock scrollbars state in
177         InternalSettings::Backup, and removed support for these
178         from Qt's DumpRenderTree.
179
180         * testing/InternalSettings.cpp:
181         (WebCore::InternalSettings::Backup::Backup):
182         (WebCore::InternalSettings::Backup::restoreTo):
183         * testing/InternalSettings.h:
184         (Backup):
185
186 2012-09-11  Mike West  <mkwst@chromium.org>
187
188         Improve console error messages when 'document.domain' blocks cross-origin script access.
189         https://bugs.webkit.org/show_bug.cgi?id=96247
190
191         Reviewed by Adam Barth.
192
193         Setting 'document.domain' can produce counterintuitive "cross-origin"
194         error messages for script access in cases where the property isn't set
195         to the same value in both the accessor and accessee. This patch adds a
196         bit more context to the error message to make it clear that both sides
197         must set the property, and that the values must match.
198
199         This shouldn't change any externally visible behavior other than the
200         error warnings. It's covered by changes to existing tests.
201
202         * page/DOMWindow.cpp:
203         (WebCore::DOMWindow::crossDomainAccessErrorMessage):
204             Adding checks for 'document.domain'-related errors, and adding an
205             ASSERT that crossDomainAccessErrorMessage is called in cases where
206             the accessing frame is actually denied access to the frame being
207             accessed.
208
209 2012-09-11  Jinwoo Song  <jinwoo7.song@samsung.com>
210
211         Deploy StringBuilder::appendNumber() and StringBuilder::appendLiteral() in more places
212         https://bugs.webkit.org/show_bug.cgi?id=96344
213
214         Reviewed by Benjamin Poulain.
215
216         Use StringBuilder::appendNumber() instead of String::number(). Also deploy 
217         StringBuilder::appendLiteral() instead of String::append() in the surrounding code.
218
219         * css/CSSAspectRatioValue.cpp:
220         (WebCore::CSSAspectRatioValue::customCssText):
221         * platform/graphics/gpu/LoopBlinnPathProcessor.cpp:
222         (WebCore):
223         * svg/SVGPointList.cpp:
224         (WebCore::SVGPointList::valueAsString):
225
226 2012-09-11  Tony Chang  <tony@chromium.org>
227
228         Rename computeLogicalHeight to updateLogicalHeight
229         https://bugs.webkit.org/show_bug.cgi?id=96305
230
231         Reviewed by Ojan Vafai.
232
233         computeLogicalHeight changes the value of 4 member variables of the
234         render box, so give it a name that makes it more clear that it is
235         updating member variables.
236
237         No new tests, this is just a refactor.
238
239         * rendering/RenderBlock.cpp:
240         (WebCore::RenderBlock::computeInitialRegionRangeForBlock):
241         (WebCore::RenderBlock::checkForPaginationLogicalHeightChange):
242         (WebCore::RenderBlock::layoutBlock):
243         (WebCore::RenderBlock::layoutPositionedObjects):
244         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
245         * rendering/RenderBox.cpp:
246         (WebCore::RenderBox::updateLogicalHeight):
247         (WebCore::RenderBox::computePercentageLogicalHeight):
248         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
249         (WebCore::RenderBox::availableLogicalHeightUsing):
250         * rendering/RenderBox.h:
251         (RenderBox):
252         (WebCore::RenderBox::tryLayoutDoingPositionedMovementOnly):
253         * rendering/RenderDeprecatedFlexibleBox.cpp:
254         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
255         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
256         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
257         * rendering/RenderEmbeddedObject.cpp:
258         (WebCore::RenderEmbeddedObject::layout):
259         * rendering/RenderFlexibleBox.cpp:
260         (WebCore::RenderFlexibleBox::layoutBlock):
261         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
262         * rendering/RenderFlowThread.cpp:
263         (WebCore::RenderFlowThread::updateLogicalHeight):
264         * rendering/RenderFlowThread.h:
265         * rendering/RenderGrid.cpp:
266         (WebCore::RenderGrid::layoutBlock):
267         * rendering/RenderHTMLCanvas.cpp:
268         (WebCore::RenderHTMLCanvas::canvasSizeChanged):
269         * rendering/RenderIFrame.cpp:
270         (WebCore::RenderIFrame::updateLogicalHeight):
271         (WebCore::RenderIFrame::layoutSeamlessly):
272         (WebCore::RenderIFrame::layout):
273         * rendering/RenderIFrame.h:
274         (RenderIFrame):
275         * rendering/RenderImage.cpp:
276         (WebCore::RenderImage::imageDimensionsChanged):
277         * rendering/RenderListBox.cpp:
278         (WebCore::RenderListBox::updateLogicalHeight):
279         * rendering/RenderListBox.h:
280         (RenderListBox):
281         * rendering/RenderMeter.cpp:
282         (WebCore::RenderMeter::updateLogicalHeight):
283         * rendering/RenderMeter.h:
284         (RenderMeter):
285         * rendering/RenderMultiColumnBlock.cpp:
286         (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
287         * rendering/RenderMultiColumnFlowThread.h:
288         * rendering/RenderMultiColumnSet.cpp:
289         (WebCore::RenderMultiColumnSet::updateLogicalHeight):
290         * rendering/RenderMultiColumnSet.h:
291         (RenderMultiColumnSet):
292         * rendering/RenderReplaced.cpp:
293         (WebCore::RenderReplaced::layout):
294         * rendering/RenderSearchField.cpp:
295         (WebCore::RenderSearchField::computeControlHeight):
296         * rendering/RenderTable.cpp:
297         (WebCore::RenderTable::layout):
298         * rendering/RenderTextControl.cpp:
299         (WebCore::RenderTextControl::updateLogicalHeight):
300         * rendering/RenderTextControl.h:
301         (RenderTextControl):
302         * rendering/RenderView.cpp:
303         (WebCore::RenderView::updateLogicalHeight):
304         * rendering/RenderView.h:
305         * rendering/svg/RenderSVGForeignObject.cpp:
306         (WebCore::RenderSVGForeignObject::updateLogicalHeight):
307         * rendering/svg/RenderSVGForeignObject.h:
308         (RenderSVGForeignObject):
309         * rendering/svg/RenderSVGRoot.cpp:
310         (WebCore::RenderSVGRoot::layout):
311
312 2012-09-11  Zach Kuznia  <zork@chromium.org>
313
314         Fix FilterTypeZoom to properly call canvas->restore()
315         https://bugs.webkit.org/show_bug.cgi?id=96082
316
317         Reviewed by Adrienne Walker.
318
319         Fix zoom filter to properly call canvas->restore()
320
321         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
322         (WebCore::CCRenderSurfaceFilters::apply):
323
324 2012-09-11  Sergio Villar Senin  <svillar@igalia.com>
325
326         [GTK] WebKitGtk+ crashes with non-UTF8 HTTP header names
327         https://bugs.webkit.org/show_bug.cgi?id=96284
328
329         Reviewed by Gustavo Noronha Silva.
330
331         Non UTF-8 characters sent as part of a HTTP header name were
332         causing crashes as String::fromUTF8() was returning NULL for
333         them. Use String::fromUTF8WithLatin1Fallback() instead.
334
335         Test: http/tests/misc/non-utf8-header-name.php
336
337         * platform/network/soup/ResourceResponseSoup.cpp:
338         (WebCore::ResourceResponse::updateFromSoupMessage):
339
340 2012-09-11  Sheriff Bot  <webkit.review.bot@gmail.com>
341
342         Unreviewed, rolling out r128175.
343         http://trac.webkit.org/changeset/128175
344         https://bugs.webkit.org/show_bug.cgi?id=96395
345
346         broke hunders of tests for EFL and GTK (Requested by rakuco on
347         #webkit).
348
349         * platform/network/soup/ResourceResponseSoup.cpp:
350         (WebCore::ResourceResponse::updateFromSoupMessage):
351
352 2012-09-11  Raphael Kubo da Costa  <rakuco@webkit.org>
353
354         [EFL] Rewrite the EFL-related Find modules
355         https://bugs.webkit.org/show_bug.cgi?id=95237
356
357         Reviewed by Kenneth Rohde Christiansen.
358
359         * CMakeLists.txt: Stop setting the LINK_FLAGS property now that no
360         port sets WebCore_LINK_FLAGS.
361         * PlatformEfl.cmake: Add libraries and include directories for
362         each Enlightenment Foundation Library used by the port.
363
364 2012-09-11  Csaba Osztrogonác  <ossy@webkit.org>
365
366         [Qt] Unreviewed, rolling out 128054, because it broke the Windows build.
367
368         * DerivedSources.pri:
369
370 2012-09-11  Andras Becsi  <andras.becsi@nokia.com>
371
372         [Qt] Fix the build with libwebp
373
374         Rubber-stamped by Tor Arne Vestbø
375
376         The use-flag is called WEBP not LIBWEBP, so use that when appending -lwebp.
377
378         * WebCore.pri:
379
380 2012-09-10  Andrey Kosyakov  <caseq@chromium.org>
381
382         Web Inspector: visualize layout root in Timeline
383         https://bugs.webkit.org/show_bug.cgi?id=96279
384
385         Reviewed by Pavel Feldman.
386
387         - pass layout root to InspectorTimelineAgent::didLayout
388         - show rectangles of the layout root upon hover over the Layout record;
389
390         * inspector/InspectorInstrumentation.cpp:
391         (WebCore):
392         (WebCore::InspectorInstrumentation::didLayoutImpl):
393         * inspector/InspectorInstrumentation.h:
394         (WebCore):
395         (InspectorInstrumentation):
396         (WebCore::InspectorInstrumentation::didLayout):
397         * inspector/InspectorTimelineAgent.cpp:
398         (WebCore::InspectorTimelineAgent::didLayout):
399         * inspector/InspectorTimelineAgent.h:
400         (WebCore):
401         (InspectorTimelineAgent):
402         * inspector/TimelineRecordFactory.cpp:
403         (WebCore::TimelineRecordFactory::createPaintData):
404         (WebCore::TimelineRecordFactory::addRectData):
405         (WebCore):
406         * inspector/TimelineRecordFactory.h:
407         (TimelineRecordFactory):
408         * inspector/front-end/TimelinePanel.js:
409         (WebInspector.TimelinePanel.prototype._mouseMove):
410         * page/FrameView.cpp:
411         (WebCore::FrameView::layout):
412
413 2012-09-10  Andrey Kosyakov  <caseq@chromium.org>
414
415         Web Inspector: highlight of paint rectangles is broken
416         https://bugs.webkit.org/show_bug.cgi?id=96276
417
418         Reviewed by Pavel Feldman.
419
420         * inspector/InspectorOverlay.cpp:
421         (WebCore::InspectorOverlay::drawRectHighlight): Fix JS method name to match the one in InspectorOverlayPage.html
422
423 2012-09-11  Chris Guan  <chris.guan@torchmobile.com.cn>
424
425         [Blackberry] use ReadOnlyLatin1String to save a deep copy
426         https://bugs.webkit.org/show_bug.cgi?id=96364
427
428         Reviewed by Yong Li.
429         Internally reviewed by Yong li.
430
431         * platform/network/blackberry/NetworkManager.cpp:
432         (WebCore::NetworkManager::startJob):
433
434 2012-09-11  Sergio Villar Senin  <svillar@igalia.com>
435
436         [GTK] WebKitGtk+ crashes with non-UTF8 HTTP header names
437         https://bugs.webkit.org/show_bug.cgi?id=96284
438
439         Reviewed by Gustavo Noronha Silva.
440
441         Non UTF-8 characters sent as part of a HTTP header name were
442         causing crashes as String::fromUTF8() was returning NULL for
443         them. Use String::fromUTF8WithLatin1Fallback() instead.
444
445         Test: http/tests/misc/non-utf8-header-name.php
446
447         * platform/network/soup/ResourceResponseSoup.cpp:
448         (WebCore::ResourceResponse::updateFromSoupMessage):
449
450 2012-09-11  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
451
452         [Qt] Add a configure step to the Qt build system
453
454         This allows building the Qt port using just 'qmake WebKit.pro'. Using
455         the build-webkit script is still supported, and will add slightly more
456         logic to the build, such as detecting the need for clean or incremental
457         builds.
458
459         Internally, the build system now uses a new variable, WEBKIT_CONFIG, for
460         all things related to configuring the build, such as use/have/enable flags,
461         and these are translated to defines in default_post. Project files should
462         no longer check contains(DEFINES,...) to detect features, but use the new
463         enable?(), use?(), and have?() functions. The no_webkit1 and no_webkit2
464         options have been translated into WEBKIT_CONFIG options as well, and can
465         be checked using build?().
466
467         Reviewed by Simon Hausmann.
468
469         * DerivedSources.pri:
470         * Target.pri:
471         * WebCore.pri:
472
473 2012-09-11  Alexander Pavlov  <apavlov@chromium.org>
474
475         Web Inspector: Remove no-op TreeElement.prototype.didChange method
476         https://bugs.webkit.org/show_bug.cgi?id=96376
477
478         Reviewed by Yury Semikhatsky.
479
480         * inspector/front-end/treeoutline.js:
481         (TreeElement.prototype.set title):
482         (TreeElement.prototype.set tooltip):
483         (TreeElement.prototype.set hasChildren):
484
485 2012-09-11  Tommy Widenflycht  <tommyw@google.com>
486
487         MediaStream API: add RTCPeerConnection::onnegotiationneeded
488         https://bugs.webkit.org/show_bug.cgi?id=96097
489
490         Reviewed by Adam Barth.
491
492         This patch adds the last callback to RTCPeerConnection: onnegotiationneeded.
493         This is called whenever the state in the RTCPeerConnection changes and that
494         change needs to be sent to the other side.
495
496         Test: fast/mediastream/RTCPeerConnection-onnegotiationneeded.html
497
498         * Modules/mediastream/RTCPeerConnection.cpp:
499         (WebCore::RTCPeerConnection::negotiationNeeded):
500         (WebCore):
501         * Modules/mediastream/RTCPeerConnection.h:
502         (RTCPeerConnection):
503         * Modules/mediastream/RTCPeerConnection.idl:
504         * dom/EventNames.h:
505         (WebCore):
506         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
507         (RTCPeerConnectionHandlerClient):
508         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
509         (WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
510         (WebCore):
511         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
512         (RTCPeerConnectionHandlerChromium):
513
514 2012-09-11  Kent Tamura  <tkent@chromium.org>
515
516         Sort an Xcode project file.
517
518         * WebCore.xcodeproj/project.pbxproj:
519
520 2012-09-11  Dan Carney  <dcarney@google.com>
521
522         Removed V8IsolatedContext
523         https://bugs.webkit.org/show_bug.cgi?id=95735
524
525         Reviewed by Adam Barth.
526
527         Remove V8IsolatedContext and merge functionality into V8DOMWindowShell.
528         This brings the V8 isolated world model into closer alignment with
529         that of JSC.
530
531         No new tests.  No change in functionality.
532
533         * UseV8.cmake:
534         * WebCore.gypi:
535         * bindings/scripts/CodeGeneratorV8.pm:
536         (GenerateImplementation):
537         * bindings/scripts/test/V8/V8Float64Array.cpp:
538         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
539         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
540         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
541         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
542         * bindings/scripts/test/V8/V8TestException.cpp:
543         * bindings/scripts/test/V8/V8TestInterface.cpp:
544         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
545         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
546         * bindings/scripts/test/V8/V8TestNode.cpp:
547         * bindings/scripts/test/V8/V8TestObj.cpp:
548         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
549         * bindings/v8/DOMData.cpp:
550         (WebCore::DOMData::getCurrentStore):
551         * bindings/v8/DOMWrapperWorld.cpp:
552         (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
553         * bindings/v8/DOMWrapperWorld.h:
554         (DOMWrapperWorld):
555         * bindings/v8/ScriptController.cpp:
556         (WebCore::ScriptController::ScriptController):
557         (WebCore::ScriptController::resetIsolatedWorlds):
558         (WebCore::ScriptController::ensureIsolatedWorldContext):
559         (WebCore::ScriptController::existingWindowShellInternal):
560         (WebCore):
561         (WebCore::ScriptController::windowShell):
562         (WebCore::ScriptController::evaluateInIsolatedWorld):
563         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
564         (WebCore::ScriptController::currentWorldContext):
565         (WebCore::ScriptController::evaluateInWorld):
566         (WebCore::ScriptController::collectIsolatedContexts):
567         * bindings/v8/ScriptController.h:
568         (WebCore):
569         (ScriptController):
570         (WebCore::ScriptController::existingWindowShell):
571         * bindings/v8/SharedPersistent.h:
572         (WebCore):
573         (WebCore::SharedPersistent::create):
574         (WebCore::SharedPersistent::get):
575         (WebCore::SharedPersistent::SharedPersistent):
576         (SharedPersistent):
577         * bindings/v8/V8Binding.cpp:
578         (WebCore::perContextDataForCurrentWorld):
579         * bindings/v8/V8DOMWindowShell.cpp:
580         (WebCore::setIsolatedWorldField):
581         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
582         (WebCore):
583         (WebCore::setInjectedScriptContextDebugId):
584         (WebCore::V8DOMWindowShell::create):
585         (WebCore::V8DOMWindowShell::V8DOMWindowShell):
586         (WebCore::V8DOMWindowShell::destroyIsolatedShell):
587         (WebCore::isolatedContextWeakCallback):
588         (WebCore::V8DOMWindowShell::disposeContext):
589         (WebCore::V8DOMWindowShell::initializeIfNeeded):
590         (WebCore::V8DOMWindowShell::createContext):
591         (WebCore::V8DOMWindowShell::installDOMWindow):
592         (WebCore::V8DOMWindowShell::updateDocumentWrapper):
593         (WebCore::V8DOMWindowShell::updateDocumentProperty):
594         (WebCore::V8DOMWindowShell::clearDocumentProperty):
595         (WebCore::V8DOMWindowShell::setSecurityToken):
596         (WebCore::V8DOMWindowShell::updateDocument):
597         (WebCore::V8DOMWindowShell::namedItemAdded):
598         (WebCore::V8DOMWindowShell::namedItemRemoved):
599         (WebCore::V8DOMWindowShell::updateSecurityOrigin):
600         (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin):
601         * bindings/v8/V8DOMWindowShell.h:
602         (V8DOMWindowShell):
603         (WebCore::V8DOMWindowShell::world):
604         (WebCore::V8DOMWindowShell::isolatedWorldSecurityOrigin):
605         (WebCore::V8DOMWindowShell::getEntered):
606         * bindings/v8/V8DOMWrapper.h:
607         (WebCore::V8DOMWrapper::getCachedWrapper):
608         * bindings/v8/V8IsolatedContext.cpp: Removed.
609         * bindings/v8/V8IsolatedContext.h: Removed.
610         * bindings/v8/V8LazyEventListener.cpp:
611         * bindings/v8/WorldContextHandle.cpp:
612         (WebCore::WorldContextHandle::WorldContextHandle):
613         (WebCore::WorldContextHandle::adjustedContext):
614         * bindings/v8/custom/V8DocumentCustom.cpp:
615         (WebCore::toV8):
616         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
617         (WebCore::toV8):
618         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
619         (WebCore::toV8):
620         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
621         (WebCore::V8XMLHttpRequest::constructorCallback):
622
623 2012-09-11  Keishi Hattori  <keishi@webkit.org>
624
625         Create Localizer factory method for LocaleMac
626         https://bugs.webkit.org/show_bug.cgi?id=96355
627
628         Reviewed by Kent Tamura.
629
630         Preparing to use Localizer instead of LocaleMac/Win/ICU
631
632         No new tests. Covered in unit test tests/LocaleMacTest.cpp
633
634         * platform/text/Localizer.h:
635         (Localizer):
636         * platform/text/mac/LocaleMac.mm:
637         (WebCore::Localizer::create):
638         (WebCore):
639
640 2012-09-11  Mihnea Ovidenie  <mihnea@adobe.com>
641
642         [CSS Regions] Auto width is not working for Regions
643         https://bugs.webkit.org/show_bug.cgi?id=74135
644
645         Reviewed by Julien Chaffraix.
646
647         It was not possible to flow content into a region having { width: auto; } since in such case, the region width was computed to 0.
648         Now, a region having auto width, will have its width computed following the rules for calculation of widths and margins
649         (http://www.w3.org/TR/CSS2/visudet.html#Computing_widths_and_margins).
650         For those cases in which resolving the width requires measuring of content's min/max-content values, we use the associated named flow min/max-content
651         values (the same for all regions with width auto in a region chain).
652         When a region has width:auto, the computation of width should be done using normal block/box sizing code, instead of replaced element code.
653         Contains code contributed by Alexandru Chiculita(achicu@adobe.com).
654
655         Tests: fast/regions/autowidth-abspos-regionchain.html
656                fast/regions/autowidth-abspos.html
657                fast/regions/autowidth-attachedinvalidregion.html
658                fast/regions/autowidth-float.html
659                fast/regions/autowidth-inlineblock.html
660                fast/regions/autowidth-nonreplaced-abspos.html
661                fast/regions/autowidth-nonreplacedblock-normalflow.html
662                fast/regions/autowidth-normalflow-maxwidth.html
663                fast/regions/autowidth-normalflow-minmaxwidth.html
664                fast/regions/autowidth-normalflow-minwidth.html
665                fast/regions/autowidth-normalflow-vertrl.html
666                fast/regions/autowidth-normalflow.html
667
668         * rendering/RenderBox.cpp:
669         (WebCore::RenderBox::computePositionedLogicalWidth): For positioned auto-width regions, skip the code path for replaced elements.
670         * rendering/RenderRegion.cpp:
671         (WebCore): Override min/maxPreferredLogicalWidth as they are used in the process of computing width for regions with auto width.
672         As this moment, a region is still a RenderReplaced element, so this code needs to be revisited when the region will become a RenderBlock.
673         Also, for min/max-width, we support only <length> values. We will extend support for other values in a following patch.
674         We only attempt to use the flowThread min/maxPreferredLogicalWidth if the region is valid (there are no circular dependencies).
675         (WebCore::RenderRegion::minPreferredLogicalWidth):
676         (WebCore::RenderRegion::maxPreferredLogicalWidth):
677         * rendering/RenderRegion.h:
678         (RenderRegion): Override isInlineBlockOrInlineTable() and shouldComputeSizeAsReplaced() to ensure that computation for width auto follows the normal
679         block/box sizing code.
680         (WebCore::RenderRegion::expandToEncompassFlowThreadContentsIfNeeded):
681
682 2012-09-10  Ilya Tikhonovsky  <loislo@chromium.org>
683
684         Web Inspector: NMI: move MemoryInstrumentation.h to wtf
685         https://bugs.webkit.org/show_bug.cgi?id=96356
686
687         Reviewed by Yury Semikhatsky.
688
689         It is necessary step because it helps us to remove dependency between platform and WebCore.
690
691         * GNUmakefile.list.am:
692         * Target.pri:
693         * WebCore.gypi:
694         * WebCore.vcproj/WebCore.vcproj:
695         * WebCore.xcodeproj/project.pbxproj:
696         * dom/WebCoreMemoryInstrumentation.h:
697         * inspector/MemoryInstrumentationImpl.h:
698
699 2012-09-10  Keishi Hattori  <keishi@webkit.org>
700
701         Move InputTypeNames to a separate file
702         https://bugs.webkit.org/show_bug.cgi?id=96255
703
704         Reviewed by Kent Tamura.
705
706         We want to move InputTypeNames to a separate file so we can use it without including InputType.h.
707
708         No new tests. No behavior change.
709
710         * CMakeLists.txt:
711         * GNUmakefile.list.am:
712         * Target.pri:
713         * WebCore.gypi:
714         * WebCore.vcproj/WebCore.vcproj:
715         * WebCore.xcodeproj/project.pbxproj:
716         * html/ButtonInputType.cpp:
717         * html/CheckboxInputType.cpp:
718         * html/ColorInputType.cpp:
719         * html/DateInputType.cpp:
720         * html/DateTimeInputType.cpp:
721         * html/DateTimeLocalInputType.cpp:
722         * html/EmailInputType.cpp:
723         * html/FileInputType.cpp:
724         * html/HiddenInputType.cpp:
725         * html/ImageInputType.cpp:
726         * html/InputType.cpp:
727         * html/InputType.h:
728         * html/InputTypeNames.cpp: Added.
729         (WebCore):
730         (InputTypeNames):
731         (WebCore::InputTypeNames::button):
732         (WebCore::InputTypeNames::checkbox):
733         (WebCore::InputTypeNames::color):
734         (WebCore::InputTypeNames::date):
735         (WebCore::InputTypeNames::datetime):
736         (WebCore::InputTypeNames::datetimelocal):
737         (WebCore::InputTypeNames::email):
738         (WebCore::InputTypeNames::file):
739         (WebCore::InputTypeNames::hidden):
740         (WebCore::InputTypeNames::image):
741         (WebCore::InputTypeNames::month):
742         (WebCore::InputTypeNames::number):
743         (WebCore::InputTypeNames::password):
744         (WebCore::InputTypeNames::radio):
745         (WebCore::InputTypeNames::range):
746         (WebCore::InputTypeNames::reset):
747         (WebCore::InputTypeNames::search):
748         (WebCore::InputTypeNames::submit):
749         (WebCore::InputTypeNames::telephone):
750         (WebCore::InputTypeNames::text):
751         (WebCore::InputTypeNames::time):
752         (WebCore::InputTypeNames::url):
753         (WebCore::InputTypeNames::week):
754         * html/InputTypeNames.h: Added.
755         (WebCore):
756         (InputTypeNames):
757         * html/MonthInputType.cpp:
758         * html/NumberInputType.cpp:
759         * html/PasswordInputType.cpp:
760         * html/RadioInputType.cpp:
761         * html/RangeInputType.cpp:
762         * html/ResetInputType.cpp:
763         * html/SearchInputType.cpp:
764         * html/SubmitInputType.cpp:
765         * html/TelephoneInputType.cpp:
766         * html/TextInputType.cpp:
767         * html/TimeInputType.cpp:
768         * html/URLInputType.cpp:
769         * html/WeekInputType.cpp:
770         * html/parser/HTMLPreloadScanner.cpp:
771         * platform/efl/RenderThemeEfl.cpp:
772         * rendering/RenderThemeChromiumCommon.cpp:
773
774 2012-09-10  Yoshifumi Inoue  <yosin@chromium.org>
775
776         REGRESSION (r127226): Calling DateTimeEditElement::layout() in focus handler should not dispatch blur event
777         https://bugs.webkit.org/show_bug.cgi?id=96232
778
779         Reviewed by Kent Tamura.
780
781         This patch makes DateTimeEditElement::layout() not to dispatch blur
782         event by removing existing fields, one of them can be focused, after
783         moving focus to newly created field.
784
785         This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
786         ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
787
788         Test: fast/forms/time-multiple-fields/time-multiple-fields-state-change-on-focus-or-blur.html
789
790         * html/shadow/DateTimeEditElement.cpp:
791         (WebCore::DateTimeEditBuilder::build): Changed to call resetFields().
792         (WebCore::DateTimeEditElement::focusedFieldIndex): Changed to use
793         Document::focusedNode(). When this function is called during handling
794         focus event, Element::focused() isn't true.
795         (WebCore::DateTimeEditElement::layout): Changed to remove existing
796         child nodes after moving focus to newly created field.
797         (WebCore::DateTimeEditElement::resetFields): Renamed from resetLayout().
798         This function makes m_fields vector empty.
799         (WebCore::DateTimeEditElement::resetLayout): Renamed to resetFields().
800         We moved removing field elements and spin button to layout().
801         * html/shadow/DateTimeEditElement.h:
802         (DateTimeEditElement): Renamed resetLayout() to resetFields().
803
804 2012-09-10  Keishi Hattori  <keishi@webkit.org>
805
806         Rename NumberLocalizer to Localizer
807         https://bugs.webkit.org/show_bug.cgi?id=96350
808
809         Reviewed by Kent Tamura.
810
811         Renaming NumberLocalizer to Localizer so we can unify our localization methods into this class in the future.
812
813         No new tests. No behavior change.
814
815         * WebCore.gypi:
816         * WebCore.xcodeproj/project.pbxproj:
817         * platform/text/LocaleICU.cpp:
818         (WebCore::LocaleICU::initializeLocalizerData):
819         * platform/text/LocaleICU.h:
820         (LocaleICU):
821         * platform/text/LocaleWin.cpp:
822         (WebCore::LocaleWin::initializeLocalizerData):
823         * platform/text/LocaleWin.h:
824         (LocaleWin):
825         * platform/text/Localizer.cpp: Renamed from Source/WebCore/platform/text/NumberLocalizer.cpp.
826         (WebCore):
827         (WebCore::Localizer::~Localizer):
828         (WebCore::Localizer::setLocalizerData):
829         (WebCore::Localizer::convertToLocalizedNumber):
830         (WebCore::matches):
831         (WebCore::Localizer::detectSignAndGetDigitRange):
832         (WebCore::Localizer::matchedDecimalSymbolIndex):
833         (WebCore::Localizer::convertFromLocalizedNumber):
834         (WebCore::Localizer::localizedDecimalSeparator):
835         * platform/text/Localizer.h: Renamed from Source/WebCore/platform/text/NumberLocalizer.h.
836         (WebCore):
837         (Localizer):
838         (WebCore::Localizer::Localizer):
839         * platform/text/mac/LocaleMac.h:
840         (LocaleMac):
841         * platform/text/mac/LocaleMac.mm:
842         (WebCore::LocaleMac::initializeLocalizerData):
843
844 2012-09-10  Dan Bernstein  <mitz@apple.com>
845
846         Use an API symbol instead of a hardcoded string for the TIFF uniform type identifier.
847
848         Reviewed by Mark Rowe.
849
850         * platform/graphics/mac/ImageMac.mm:
851         (WebCore::BitmapImage::getTIFFRepresentation): Replaced CFSTR("public.tiff") with kUTTypeTIFF.
852
853 2012-09-10  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
854
855         [CMake] Remove duplicated file in CMakeLists.txt
856         https://bugs.webkit.org/show_bug.cgi?id=96346
857
858         Reviewed by Benjamin Poulain.
859
860         * CMakeLists.txt: Remove duplicated files.
861
862 2012-09-10  Joanmarie Diggs  <jdiggs@igalia.com>
863
864         Properly expose <legend> elements to ATs
865         https://bugs.webkit.org/show_bug.cgi?id=84137
866
867         Reviewed by Chris Fleizach.
868
869         Created a new WebCore Accessibility Role, LegendRole. Used it to map to
870         the expected platform role, ATK_ROLE_LABEL. Also established the needed
871         AtkRelation pair, label-for/labelled-by between the legend and fieldset.
872
873         No new test needed - Existing legend.html test is now unskipped for Gtk.
874
875         * accessibility/AccessibilityObject.h: Added LegendRole
876         * accessibility/AccessibilityRenderObject.cpp:
877         (WebCore::AccessibilityRenderObject::determineAccessibilityRole): Map legendTag to LegendRole
878         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
879         (webkitAccessibleGetName): Fieldset accessible should take its name from the associated LegendRole/label
880         (setAtkRelationSetFromCoreObject): Set label-for/labelled-by AtkRelation pair between fieldset and legend
881         (atkRole): Map LegendRole to ATK_ROLE_LABEL
882         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
883         (createAccessibilityRoleMap):  Map LegendRole to NSAccessibilityGroupRole
884
885 2012-09-10  Adam Barth  <abarth@chromium.org>
886
887         [V8] Code assumes that getScriptExecutionContext can return 0
888         https://bugs.webkit.org/show_bug.cgi?id=96340
889
890         Reviewed by Eric Seidel.
891
892         This function can never return 0 (as long as V8 is on the stack).
893         There's no reason to try to handle a 0 return as an error.
894
895         * bindings/scripts/CodeGeneratorV8.pm:
896         (GenerateCallWith):
897         (GenerateConstructorCallback):
898         * bindings/scripts/test/V8/V8TestInterface.cpp:
899         (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
900         (WebCore::V8TestInterface::constructorCallback):
901         * bindings/scripts/test/V8/V8TestObj.cpp:
902         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetter):
903         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
904         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
905         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
906         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
907         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
908         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
909         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
910         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
911         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
912         (WebCore::TestObjV8Internal::withScriptExecutionContextCallback):
913         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateCallback):
914         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
915         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
916         * bindings/v8/custom/V8BlobCustom.cpp:
917         (WebCore::V8Blob::constructorCallback):
918         * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
919         (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
920         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
921         (WebCore::V8MessageChannel::constructorCallback):
922         * bindings/v8/custom/V8MutationObserverCustom.cpp:
923         (WebCore::V8MutationObserver::constructorCallback):
924         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
925         (WebCore::V8SQLTransaction::executeSqlCallback):
926         * bindings/v8/custom/V8WebSocketCustom.cpp:
927         (WebCore::V8WebSocket::constructorCallback):
928         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
929         (WebCore::V8XMLHttpRequest::constructorCallback):
930         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
931         (WebCore::V8XMLHttpRequest::openCallback):
932
933 2012-09-10  Adam Barth  <abarth@chromium.org>
934
935         [V8] We don't us the global handle map for anything useful---let's remove it
936         https://bugs.webkit.org/show_bug.cgi?id=96343
937
938         Reviewed by Kentaro Hara.
939
940         The global handle map was a dream of tracking all the persistent V8
941         handles in WebCore. Unfortunately, it has never been complete, and I'm
942         not aware of us using it for anything. This patch removes what little
943         is left of it.
944
945         * bindings/v8/NPV8Object.cpp:
946         (WebCore::freeV8NPObject):
947         (WebCore::npCreateV8ScriptObject):
948         * bindings/v8/V8GCController.cpp:
949         (WebCore):
950         (WebCore::V8GCController::gcEpilogue):
951         (WebCore::V8GCController::collectGarbage):
952         * bindings/v8/V8GCController.h:
953         (V8GCController):
954         * bindings/v8/V8PerIsolateData.h:
955         (WebCore):
956         (V8PerIsolateData):
957
958 2012-09-10  John Bates  <jbates@google.com>
959
960         [chromium] Fix trace event macro naming issue
961         https://bugs.webkit.org/show_bug.cgi?id=96337
962
963         Reviewed by James Robinson.
964
965         * platform/chromium/TraceEvent.h:
966
967 2012-09-10  Joshua Bell  <jsbell@chromium.org>
968
969         IndexedDB: IDBFactory.deleteDatabase() is slow
970         https://bugs.webkit.org/show_bug.cgi?id=96036
971
972         Reviewed by Tony Chang.
973
974         The deleteDatabase() operation is implemented by creating a LevelDBTansaction to accumulate
975         the records to delete, then committing it. The transaction is a tree of key/operation pairs.
976         As each (key, delete) entry is added to the tree compares need to be made, potentially
977         requiring full key decodes. Since this temporary transaction is never read from, this is
978         overkill.
979
980         Add a new "write only" transaction type that simply wraps a write batch, which provides
981         transaction integrity but avoids the insertion overhead and has a minimal interface.
982
983         No new tests - no functional changes, only perf improvement.
984
985         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
986         (WebCore::IDBLevelDBBackingStore::deleteDatabase): Use new write-only transaction type.
987         * platform/leveldb/LevelDBTransaction.cpp:
988         (WebCore::LevelDBWriteOnlyTransaction::create):
989         (WebCore):
990         (WebCore::LevelDBWriteOnlyTransaction::LevelDBWriteOnlyTransaction):
991         (WebCore::LevelDBWriteOnlyTransaction::~LevelDBWriteOnlyTransaction):
992         (WebCore::LevelDBWriteOnlyTransaction::remove):
993         (WebCore::LevelDBWriteOnlyTransaction::commit):
994         * platform/leveldb/LevelDBTransaction.h:
995         (WebCore):
996         (LevelDBWriteOnlyTransaction):
997
998 2012-09-10  Adam Barth  <abarth@chromium.org>
999
1000         [V8] createFunctionOnlyCallback should be in V8Callback.h with the other callback functions
1001         https://bugs.webkit.org/show_bug.cgi?id=96336
1002
1003         Reviewed by Kentaro Hara.
1004
1005         Moving this function to V8Callback.h also lets us delete
1006         setTypeMismatchException because we no longer have a header inclusion
1007         cycle.
1008
1009         * bindings/v8/V8Callback.h:
1010         (WebCore::createFunctionOnlyCallback):
1011         (WebCore):
1012         * bindings/v8/V8Utilities.cpp:
1013         * bindings/v8/V8Utilities.h:
1014         (WebCore):
1015         * bindings/v8/custom/V8GeolocationCustom.cpp:
1016         * bindings/v8/custom/V8NotificationCustom.cpp:
1017
1018 2012-09-10  Beth Dakin  <bdakin@apple.com>
1019
1020         https://bugs.webkit.org/show_bug.cgi?id=96158
1021         Need API to suppress scrollbar animations
1022         -and corresponding-
1023         <rdar://problem/12210972>
1024
1025         Reviewed by Sam Weinig.
1026
1027         This patch re-names ScrollableAre::isOnActivePage() to 
1028         ScrollableArea::scrollbarsCanBeActive(). The new name better reflects 
1029         how the function is actually used, and it allows us to use the same 
1030         function for the new API that has been added to WebKit2. Now when a 
1031         client has used that API to indicate that scrollbars should be 
1032         suppressed, ScrollableArea::scrollbarsCanBeActive() will return 
1033         false.
1034
1035         Page has a new member variable which indicated whether scrollbar 
1036         animations for all scrollbars associated with that page should be 
1037         suppressed. Whenever it is set to true (meaning the animations 
1038         should be suppressed), Page iterates through all of the 
1039         ScrollableAreas to tell each one to finishCurrentScrollAnimations().
1040         * WebCore.exp.in:
1041         * page/Page.cpp:
1042         (WebCore::Page::Page):
1043         (WebCore::Page::setShouldSuppressScrollbarAnimations):
1044         (WebCore):
1045         * page/Page.h:
1046         (WebCore::Page::shouldSuppressScrollbarAnimations):
1047         (Page):
1048
1049         FrameView::isOnActivePage() is renamed to scrollbarsCanBeActive () 
1050         and it will now return false if the Page says that scrollbar 
1051         animations should be suppressed. 
1052         * page/FrameView.cpp:
1053         (WebCore::FrameView::scrollbarsCanBeActive):
1054
1055         scrollbarsCanBeActive() must now be a public member of FrameView so  
1056         that it can be called from RenderLayer and RenderListBox.
1057         * page/FrameView.h:
1058         (FrameView):
1059
1060         New ScrollAnimator function calls hideOverlayScrollers.
1061         * platform/ScrollAnimator.h:
1062         (WebCore::ScrollAnimator::finishCurrentScrollAnimations):
1063         (ScrollAnimator):
1064         * platform/ScrollableArea.cpp:
1065         (WebCore::ScrollableArea::finishCurrentScrollAnimations):
1066         (WebCore):
1067         * platform/ScrollableArea.h:
1068         (ScrollableArea):
1069         * platform/mac/ScrollAnimatorMac.h:
1070         (ScrollAnimatorMac):
1071         (WebCore::ScrollAnimatorMac::finishCurrentScrollAnimations):
1072
1073         Re-name. isOnActivePage() -> scrollbarsCanBeActive()
1074         (WebCore::FrameView::setAnimatorsAreActive):
1075         (WebCore::FrameView::notifyPageThatContentAreaWillPaint):
1076         * platform/mac/ScrollAnimatorMac.mm:
1077         (-[WebScrollbarPainterControllerDelegate scrollerImpPair:setContentAreaNeedsDisplayInRect:]):
1078         (WebCore::ScrollAnimatorMac::contentAreaWillPaint):
1079         (WebCore::ScrollAnimatorMac::mouseEnteredContentArea):
1080         (WebCore::ScrollAnimatorMac::mouseExitedContentArea):
1081         (WebCore::ScrollAnimatorMac::mouseMovedInContentArea):
1082         (WebCore::ScrollAnimatorMac::mouseEnteredScrollbar):
1083         (WebCore::ScrollAnimatorMac::mouseExitedScrollbar):
1084         (WebCore::ScrollAnimatorMac::willStartLiveResize):
1085         (WebCore::ScrollAnimatorMac::contentsResized):
1086         (WebCore::ScrollAnimatorMac::willEndLiveResize):
1087         (WebCore::ScrollAnimatorMac::contentAreaDidShow):
1088         (WebCore::ScrollAnimatorMac::contentAreaDidHide):
1089         (WebCore::ScrollAnimatorMac::didBeginScrollGesture):
1090         (WebCore::ScrollAnimatorMac::didEndScrollGesture):
1091         (WebCore::ScrollAnimatorMac::mayBeginScrollGesture):
1092         (WebCore):
1093         (WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
1094         (WebCore::ScrollAnimatorMac::updateScrollerStyle):
1095         * rendering/RenderLayer.cpp:
1096
1097         RenderLayer and RenderListBox should call into FrameView's 
1098         scrollbarsCanBeActive() so that they also return false when Page:: 
1099         shouldSuppressScrollbarAnimations() is true.
1100         (WebCore::RenderLayer::scrollbarsCanBeActive):
1101         * rendering/RenderLayer.h:
1102         (RenderLayer):
1103         * rendering/RenderListBox.cpp:
1104         (WebCore::RenderListBox::scrollbarsCanBeActive):
1105         * rendering/RenderListBox.h:
1106
1107         This is the one caller of ScrollableArea:: scrollbarsCanBeActive() 
1108         that needs to distinguish between the scrollbar-suppressing scenario 
1109         and the in-the-page-cache scenario.
1110         * page/FocusController.cpp:
1111         (WebCore::FocusController::setContainingWindowIsVisible):
1112
1113 2012-09-10  James Robinson  <jamesr@chromium.org>
1114
1115         Unreviewed, rolling out r127837.
1116         http://trac.webkit.org/changeset/127837
1117         https://bugs.webkit.org/show_bug.cgi?id=93898
1118
1119         Broke ScrollingCoordinator on chromium
1120
1121         * WebCore.xcodeproj/project.pbxproj:
1122         * page/scrolling/ScrollingCoordinator.cpp:
1123         (WebCore::ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange):
1124         (WebCore::ScrollingCoordinator::frameViewFixedObjectsDidChange):
1125         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
1126         (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
1127         (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
1128         (WebCore::ScrollingCoordinator::setForceMainThreadScrollLayerPositionUpdates):
1129         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
1130         * page/scrolling/ScrollingCoordinator.h:
1131         (ScrollingCoordinator):
1132         * page/scrolling/ScrollingCoordinatorNone.cpp:
1133         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
1134         * page/scrolling/ScrollingTree.cpp:
1135         (WebCore::ScrollingTree::scrollingPeformanceLoggingEnabled):
1136         * page/scrolling/ScrollingTree.h:
1137         * page/scrolling/ScrollingTreeNode.cpp:
1138         (WebCore::ScrollingTreeNode::ScrollingTreeNode):
1139         (WebCore::ScrollingTreeNode::update):
1140         * page/scrolling/ScrollingTreeNode.h:
1141         (WebCore::ScrollingTreeNode::shouldUpdateScrollLayerPositionOnMainThread):
1142         (ScrollingTreeNode):
1143         * page/scrolling/ScrollingTreeState.cpp:
1144         (WebCore::ScrollingTreeState::ScrollingTreeState):
1145         (WebCore::ScrollingTreeState::setShouldUpdateScrollLayerPositionOnMainThread):
1146         * page/scrolling/ScrollingTreeState.h:
1147         (WebCore::ScrollingTreeState::shouldUpdateScrollLayerPositionOnMainThread):
1148         (ScrollingTreeState):
1149         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
1150         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
1151         * page/scrolling/mac/ScrollingTreeMac.mm:
1152         (WebCore::ScrollingTree::updateDebugRootLayer):
1153         * page/scrolling/mac/ScrollingTreeNodeMac.mm:
1154         (WebCore::ScrollingTreeNodeMac::update):
1155         (WebCore::ScrollingTreeNodeMac::scrollPosition):
1156         (WebCore::ScrollingTreeNodeMac::setScrollPosition):
1157         (WebCore::ScrollingTreeNodeMac::setScrollPositionWithoutContentEdgeConstraints):
1158         (WebCore::ScrollingTreeNodeMac::setScrollLayerPosition):
1159
1160 2012-09-10  Philip Rogers  <pdr@google.com>
1161
1162         Remove unnecessary codepaths in SMILTimeContainer::updateAnimations
1163         https://bugs.webkit.org/show_bug.cgi?id=96224
1164
1165         Reviewed by Nikolas Zimmermann.
1166
1167         This change removes two sources of unnecessary code in
1168         SMILTimeContainer::updateAnimations:
1169             1) After r117711 we now accumulate the result of multiple
1170                animations into the first _contributing_ animation
1171                element. As a result it is no longer necessary to
1172                track both which elements are contributing AND which elements
1173                we are storing results into. Both cases are now handled
1174                together with resultsElements.
1175
1176             2) r32044 added a second sort of the animation elements
1177                in order to process animateTransform last. This change
1178                was added 4 years ago, before we correctly handled <use>
1179                and the instance tree, and I think the extra sort is no
1180                longer necessary. A test has been added to ensure this
1181                is the case.
1182
1183         This change also does a minor cleanup of resultsElements. Previously,
1184         we added animation elements to resultsElements and then removed them
1185         if the animation element did not contribute. After this change, we
1186         only add to resultsElements (no more add-then-remove).
1187
1188         Test: svg/animations/use-animate-transform-and-position.html
1189
1190         * svg/animation/SMILTimeContainer.cpp:
1191         (WebCore::SMILTimeContainer::sortByPriority):
1192         (WebCore::SMILTimeContainer::updateAnimations):
1193
1194 2012-09-10  Ojan Vafai  <ojan@chromium.org>
1195
1196         Rename box-sizing applying methods to be more clear about just applying box-sizing.
1197         https://bugs.webkit.org/show_bug.cgi?id=96319
1198
1199         Reviewed by Tony Chang.
1200
1201         This is strictly a rename. No logic or web-exposed changes.
1202
1203         * rendering/AutoTableLayout.cpp:
1204         (WebCore::AutoTableLayout::recalcColumn):
1205         * rendering/FixedTableLayout.cpp:
1206         (WebCore::FixedTableLayout::calcWidthArray):
1207         * rendering/RenderBlock.cpp:
1208         (WebCore::RenderBlock::computePreferredLogicalWidths):
1209         * rendering/RenderBox.cpp:
1210         (WebCore::RenderBox::adjustBorderBoxLogicalWidthForBoxSizing):
1211         (WebCore::RenderBox::adjustBorderBoxLogicalHeightForBoxSizing):
1212         (WebCore::RenderBox::adjustContentBoxLogicalWidthForBoxSizing):
1213         (WebCore::RenderBox::adjustContentBoxLogicalHeightForBoxSizing):
1214         (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
1215         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
1216         (WebCore::RenderBox::computeLogicalHeightUsing):
1217         (WebCore::RenderBox::computeLogicalClientHeight):
1218         (WebCore::RenderBox::computePercentageLogicalHeight):
1219         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
1220         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
1221         (WebCore::RenderBox::availableLogicalHeightUsing):
1222         (WebCore::RenderBox::computePositionedLogicalWidthUsing):
1223         (WebCore::RenderBox::computePositionedLogicalHeightUsing):
1224         * rendering/RenderBox.h:
1225         (RenderBox):
1226         * rendering/RenderDeprecatedFlexibleBox.cpp:
1227         (WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):
1228         * rendering/RenderFileUploadControl.cpp:
1229         (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
1230         * rendering/RenderFlexibleBox.cpp:
1231         (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
1232         (WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
1233         * rendering/RenderListBox.cpp:
1234         (WebCore::RenderListBox::computePreferredLogicalWidths):
1235         * rendering/RenderMenuList.cpp:
1236         (WebCore::RenderMenuList::computePreferredLogicalWidths):
1237         * rendering/RenderSlider.cpp:
1238         (WebCore::RenderSlider::computePreferredLogicalWidths):
1239         * rendering/RenderTextControl.cpp:
1240         (WebCore::RenderTextControl::computePreferredLogicalWidths):
1241
1242 2012-09-10  Jer Noble  <jer.noble@apple.com>
1243
1244         Unreviewed; rolling out r128081.
1245         http://trac.webkit.org/changeset/128081
1246         https://bugs.webkit.org/show_bug.cgi?id=96134
1247
1248         New test http/tests/media/video-donottrack.html fails to run on Apple test bots.
1249
1250         * html/HTMLMediaElement.cpp:
1251         * html/HTMLMediaElement.h:
1252         (HTMLMediaElement):
1253         * loader/FrameLoaderClient.h:
1254         * platform/graphics/MediaPlayer.h:
1255         (MediaPlayer):
1256         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1257         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
1258
1259 2012-09-10  Dimitri Glazkov  <dglazkov@chromium.org>
1260
1261         Reduce the number of treeScope queries when matching rules.
1262         https://bugs.webkit.org/show_bug.cgi?id=96315
1263
1264         Reviewed by Eric Seidel.
1265
1266         In the worst case, treeScope() requires a HashMap lookup, which could be slow. Since the value is always the same for the element,
1267         we can just ask for it once.
1268
1269         No new tests, no change in behavior.
1270
1271         * css/StyleResolver.cpp:
1272         (WebCore::StyleResolver::collectMatchingRulesForList): Moved the call to treeScope out of the loop.
1273
1274 2012-09-10  Adam Barth  <abarth@chromium.org>
1275
1276         [V8] V8PerIsolateData::m_toStringTemplate leaks memory
1277         https://bugs.webkit.org/show_bug.cgi?id=96322
1278
1279         Reviewed by Kentaro Hara.
1280
1281         We never call Dispose to balance the call to v8::Persistent::New. This
1282         patch uses ScopedPersistent to call Dispose automatically.
1283
1284         * bindings/v8/V8PerIsolateData.cpp:
1285         (WebCore::V8PerIsolateData::toStringTemplate):
1286             - I've changed this function to return a new local handle in case
1287               anyone is trying to hold on to these handles during shutdown.
1288         * bindings/v8/V8PerIsolateData.h:
1289         (V8PerIsolateData):
1290
1291 2012-09-10  Adam Barth  <abarth@chromium.org>
1292
1293         [V8] V8LazyEventListener::prepareListenerObject uses inefficient string operations
1294         https://bugs.webkit.org/show_bug.cgi?id=96324
1295
1296         Reviewed by Kentaro Hara.
1297
1298         Previously, this code called String::append several times, which
1299         mallocs a new string buffer each time. This patch switches this code to
1300         use operator+, which uses StringAppend to optimize these operations
1301         down to a single malloc.
1302
1303         * bindings/v8/V8LazyEventListener.cpp:
1304         (WebCore::V8LazyEventListener::prepareListenerObject):
1305
1306 2012-09-10  Adam Barth  <abarth@chromium.org>
1307
1308         [V8] V8AuxiliaryContext used by IDB leaks memory
1309         https://bugs.webkit.org/show_bug.cgi?id=96317
1310
1311         Reviewed by Tony Chang.
1312
1313         Before this patch, we leaked m_auxiliaryContext on V8PerIsolateData
1314         because no one ever called Dispose to balance the call to
1315         V8::Context::New. This patch uses ScopedPersistent to call Dispose
1316         automatically.
1317
1318         Also, I've deleted the V8AuxiliaryContext because it just reinvents
1319         V8::Context::Scope.
1320
1321         * bindings/v8/IDBBindingUtilities.cpp:
1322         (WebCore::createIDBKeyFromSerializedValueAndKeyPath):
1323         (WebCore::injectIDBKeyIntoSerializedValue):
1324         * bindings/v8/V8PerIsolateData.cpp:
1325         (WebCore::V8PerIsolateData::ensureAuxiliaryContext):
1326         (WebCore):
1327         * bindings/v8/V8PerIsolateData.h:
1328         (V8PerIsolateData):
1329         * bindings/v8/V8Utilities.cpp:
1330         * bindings/v8/V8Utilities.h:
1331
1332 2012-09-10  Adam Barth  <abarth@chromium.org>
1333
1334         [V8] currentDocument doesn't need to handle the case where there is no v8::Context
1335         https://bugs.webkit.org/show_bug.cgi?id=96312
1336
1337         Reviewed by Eric Seidel.
1338
1339         This function is always called while V8 is on the stack. It doesn't
1340         need to handle this impossible error condition.
1341
1342         * bindings/v8/BindingState.cpp:
1343         (WebCore::currentDocument):
1344
1345 2012-09-10  Adam Barth  <abarth@chromium.org>
1346
1347         [V8] Inline firstFrame and currentFrame into their unique callers
1348         https://bugs.webkit.org/show_bug.cgi?id=96309
1349
1350         Reviewed by Eric Seidel.
1351
1352         These functions have only one caller. We'd prefer not to have more
1353         callers (because there's usually no reason to indirect through the
1354         Frame), so we should inline them into their one caller (which is the
1355         Chromium WebKit API).
1356
1357         * bindings/js/BindingState.h:
1358         (WebCore):
1359         * bindings/v8/BindingState.cpp:
1360         * bindings/v8/BindingState.h:
1361         (WebCore):
1362         * bindings/v8/ScriptController.cpp:
1363         * bindings/v8/ScriptController.h:
1364         (ScriptController):
1365
1366 2012-09-10  Justin Novosad  <junov@chromium.org>
1367
1368         Implement canvas v5 line dash feature
1369         https://bugs.webkit.org/show_bug.cgi?id=82560
1370
1371         Reviewed by Darin Adler.
1372
1373         Adding new canvas 2d context API methods getLineDash and setLineDash,
1374         and new attribute lineDashOffset. Implementation mostly based on
1375         the existing webkitLineDash feature, with changes that reflect the
1376         canvas v5 specification. This change is visible to all JS ports,
1377         unlike webkitLineDash which is not exposed to V8. The new lineDash 
1378         and the legacy webkitLineDash features access the same rendering
1379         context state. The JavasScriptCore binding layer was augmented to
1380         support the sequence<float> IDL type.
1381
1382         Tests: fast/canvas/canvas-lineDash-invalid.html
1383                fast/canvas/canvas-lineDash.html
1384
1385         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
1386         (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
1387         (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
1388         * bindings/js/JSDOMBinding.h:
1389         Added template specialization on float to NativeValueTraits in order to
1390         add support for the sequence<double> IDL type to JavaScriptCore.
1391         * html/canvas/CanvasRenderingContext2D.cpp:
1392         (WebCore::CanvasRenderingContext2D::getLineDash):
1393         New 2D canvas API method, returns the current line dash array
1394         (WebCore::lineDashSequenceIsValid):
1395         Returns true if the line dash array contains only non-negative finite
1396         numbers.
1397         (WebCore::CanvasRenderingContext2D::setLineDash):
1398         New 2D canvas API method, set the line dash array.
1399         (WebCore::CanvasRenderingContext2D::setWebkitLineDash):
1400         Legacy implementation, does not double the new line dash array if
1401         it contains an odd number of elements.  Just accepts it as is.
1402         (WebCore::CanvasRenderingContext2D::lineDashOffset):
1403         Attribute getter
1404         (WebCore::CanvasRenderingContext2D::setLineDashOffset):
1405         Attribute setter
1406         (WebCore::CanvasRenderingContext2D::webkitLineDashOffset):
1407         Alias for lineDashOffset
1408         (WebCore::CanvasRenderingContext2D::setWebkitLineDashOffset):
1409         Alias for setLineDashOffset
1410         (WebCore::CanvasRenderingContext2D::applyLineDash):
1411         Sends the line dash state to the GraphicsContext
1412         * html/canvas/CanvasRenderingContext2D.h:
1413         (CanvasRenderingContext2D):
1414         (State):
1415         * html/canvas/CanvasRenderingContext2D.idl:
1416         * platform/graphics/DashArray.h:
1417
1418 2012-09-10  Sheriff Bot  <webkit.review.bot@gmail.com>
1419
1420         Unreviewed, rolling out r128109.
1421         http://trac.webkit.org/changeset/128109
1422         https://bugs.webkit.org/show_bug.cgi?id=96326
1423
1424         broke win and lion builds (Requested by kling on #webkit).
1425
1426         * WebCore.exp.in:
1427         * dom/Element.cpp:
1428         (WebCore::Element::createMutableAttributeData):
1429         * dom/ElementAttributeData.cpp:
1430         (WebCore::immutableElementAttributeDataSize):
1431         (WebCore::ElementAttributeData::createImmutable):
1432         (WebCore::ElementAttributeData::ElementAttributeData):
1433         (WebCore::ElementAttributeData::~ElementAttributeData):
1434         (WebCore::ElementAttributeData::addAttribute):
1435         (WebCore::ElementAttributeData::removeAttribute):
1436         (WebCore::ElementAttributeData::reportMemoryUsage):
1437         (WebCore::ElementAttributeData::cloneDataFrom):
1438         (WebCore::ElementAttributeData::clearAttributes):
1439         * dom/ElementAttributeData.h:
1440         (WebCore):
1441         (WebCore::ElementAttributeData::create):
1442         (ElementAttributeData):
1443         (WebCore::ElementAttributeData::isMutable):
1444         (WebCore::ElementAttributeData::makeMutable):
1445         (WebCore::ElementAttributeData::length):
1446         (WebCore::ElementAttributeData::attributeItem):
1447
1448 2012-09-10  Chris Fleizach  <cfleizach@apple.com>
1449
1450         AccessibilityNodeObject* is not in Mac xcode file
1451         https://bugs.webkit.org/show_bug.cgi?id=96327
1452
1453         Reviewed by Sam Weinig.
1454
1455         * WebCore.xcodeproj/project.pbxproj:
1456
1457 2012-09-07  Jon Lee  <jonlee@apple.com>
1458
1459         Update notifications to latest spec
1460         https://bugs.webkit.org/show_bug.cgi?id=91726
1461         <rdar://problem/11910451>
1462
1463         Reviewed by Alexey Proskuryakov.
1464
1465         Among the changes:
1466
1467         Addition of lang attribute
1468         http://lists.w3.org/Archives/Public/public-web-notification/2012Jul/0025.html
1469
1470         Specification of icon URL is icon instead of iconURL
1471         http://lists.w3.org/Archives/Public/public-web-notification/2012Jul/0012.html
1472
1473         Tests are not possible since at best they only verify exposure of the attributes, which isn't
1474         terribly useful, and use of the attributes depend on the platform.
1475
1476         * Modules/notifications/Notification.cpp:
1477         (WebCore::Notification::create): Add support for reading lang, dir, and icon from option dictionary.
1478         * Modules/notifications/Notification.h:
1479         (Notification): Make url() and setURL(), which are used for HTML notifications, only available with
1480         ENABLE(LEGACY_NOTIFICATIONS).
1481         (WebCore::Notification::setIconURL): Added so that it can be set from the option dictionary.
1482         (WebCore::Notification::lang):
1483         (WebCore::Notification::setLang):
1484         * Modules/notifications/Notification.idl: According to specification, dir is not exposed.
1485
1486 2012-08-31  Jon Lee  <jonlee@apple.com>
1487
1488         The options dictionary in Notification constructor should not accept event listeners
1489         https://bugs.webkit.org/show_bug.cgi?id=95538
1490         <rdar://problem/12213901>
1491
1492         Reviewed by Alexey Proskuryakov.
1493
1494         The latest spec only allows setting the event listeners after the notification has been created.
1495
1496         Test: http/tests/notifications/events-in-dictionary.html
1497
1498         * Modules/notifications/Notification.cpp:
1499         (WebCore::Notification::create): Do not look for the event handlers in the options dictionary.
1500
1501 2012-09-10  Tony Chang  <tony@chromium.org>
1502
1503         Rename computeLogicalWidth to updateLogicalWidth
1504         https://bugs.webkit.org/show_bug.cgi?id=96288
1505
1506         Reviewed by Ojan Vafai.
1507
1508         Also rename recomputeLogicalWidth to updateLogicalWidthAndColumnWidth.
1509         Also rename RenderTableCell::updateLogicalWidth to RenderTableCell::setCellLogicalWidth.
1510
1511         No new tests, this is just a refactor.
1512
1513         * rendering/RenderBlock.cpp:
1514         (WebCore::RenderBlock::updateLogicalWidthAndColumnWidth):
1515         (WebCore::RenderBlock::layoutBlock):
1516         (WebCore::RenderBlock::layoutPositionedObjects):
1517         (WebCore::RenderBlock::insertFloatingObject):
1518         (WebCore::RenderBlock::getClearDelta):
1519         * rendering/RenderBlock.h:
1520         * rendering/RenderBox.cpp:
1521         (WebCore::RenderBox::updateLogicalWidth):
1522         * rendering/RenderBox.h:
1523         (RenderBox):
1524         (WebCore::RenderBox::tryLayoutDoingPositionedMovementOnly):
1525         * rendering/RenderDeprecatedFlexibleBox.cpp:
1526         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
1527         * rendering/RenderEmbeddedObject.cpp:
1528         (WebCore::RenderEmbeddedObject::layout):
1529         * rendering/RenderFlexibleBox.cpp:
1530         (WebCore::RenderFlexibleBox::layoutBlock):
1531         * rendering/RenderFlowThread.cpp:
1532         (WebCore::RenderFlowThread::layout):
1533         (WebCore::RenderFlowThread::updateLogicalWidth):
1534         * rendering/RenderFlowThread.h:
1535         * rendering/RenderGrid.cpp:
1536         (WebCore::RenderGrid::layoutBlock):
1537         * rendering/RenderHTMLCanvas.cpp:
1538         (WebCore::RenderHTMLCanvas::canvasSizeChanged):
1539         * rendering/RenderIFrame.cpp:
1540         (WebCore::RenderIFrame::updateLogicalWidth):
1541         (WebCore::RenderIFrame::layoutSeamlessly):
1542         (WebCore::RenderIFrame::layout):
1543         * rendering/RenderIFrame.h:
1544         (RenderIFrame):
1545         * rendering/RenderImage.cpp:
1546         (WebCore::RenderImage::imageDimensionsChanged):
1547         * rendering/RenderMeter.cpp:
1548         (WebCore::RenderMeter::updateLogicalWidth):
1549         * rendering/RenderMeter.h:
1550         (RenderMeter):
1551         * rendering/RenderMultiColumnBlock.cpp:
1552         (WebCore::RenderMultiColumnBlock::updateLogicalWidthAndColumnWidth):
1553         * rendering/RenderMultiColumnBlock.h:
1554         (RenderMultiColumnBlock):
1555         * rendering/RenderMultiColumnSet.cpp:
1556         (WebCore::RenderMultiColumnSet::updateLogicalWidth):
1557         * rendering/RenderMultiColumnSet.h:
1558         (RenderMultiColumnSet):
1559         * rendering/RenderReplaced.cpp:
1560         (WebCore::RenderReplaced::layout):
1561         * rendering/RenderTable.cpp:
1562         (WebCore::RenderTable::updateLogicalWidth):
1563         (WebCore::RenderTable::layout):
1564         * rendering/RenderTable.h:
1565         (RenderTable):
1566         * rendering/RenderTableCell.cpp:
1567         (WebCore::RenderTableCell::updateLogicalWidth):
1568         (WebCore::RenderTableCell::setCellLogicalWidth):
1569         * rendering/RenderTableCell.h:
1570         (RenderTableCell):
1571         * rendering/RenderTableSection.cpp:
1572         (WebCore::RenderTableSection::setCellLogicalWidths):
1573         * rendering/RenderView.cpp:
1574         (WebCore::RenderView::updateLogicalWidth):
1575         * rendering/RenderView.h:
1576         * rendering/svg/RenderSVGForeignObject.cpp:
1577         (WebCore::RenderSVGForeignObject::updateLogicalWidth):
1578         * rendering/svg/RenderSVGForeignObject.h:
1579         (RenderSVGForeignObject):
1580         * rendering/svg/RenderSVGRoot.cpp:
1581         (WebCore::RenderSVGRoot::layout):
1582
1583 2012-09-10  Andreas Kling  <kling@webkit.org>
1584
1585         ElementAttributeData: Use subclasses to manage varying object layouts.
1586         <http://webkit.org/b/94465>
1587
1588         Reviewed by Antti Koivisto.
1589
1590         Add two ElementAttributeData subclasses:
1591
1592             - MutableElementAttributeData
1593             - ImmutableElementAttributeData
1594
1595         The ElementAttributeData::m_isMutable bit determines which subclass to cast to when accessing
1596         the attribute storage. Added mutableAttributeVector() and immutableAttributeArray() helpers
1597         to ElementAttributeData (with appropriate assertions.)
1598
1599         This patch removes one step of indirection in the mutable case, since the Vector<Attribute> is no
1600         longer heap-allocated, but part of MutableElementAttributeData.
1601
1602         Added a WTF::deleteOwnedPtr(ElementAttributeData*) specialization so that the appropriate subclass
1603         destructor is called for these objects.
1604
1605         * WebCore.exp.in:
1606         * dom/Element.cpp:
1607         (WebCore::Element::createMutableAttributeData):
1608         * dom/ElementAttributeData.cpp:
1609         (WebCore::ElementAttributeData::createImmutable):
1610         (WebCore::ElementAttributeData::create):
1611         (WebCore::ElementAttributeData::ElementAttributeData):
1612         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
1613         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
1614         (WebCore::ImmutableElementAttributeData::~ImmutableElementAttributeData):
1615         (WebCore::ElementAttributeData::makeMutableCopy):
1616         (WebCore::ElementAttributeData::addAttribute):
1617         (WebCore::ElementAttributeData::removeAttribute):
1618         (WebCore::ElementAttributeData::reportMemoryUsage):
1619         (WebCore::ElementAttributeData::cloneDataFrom):
1620         (WebCore::ElementAttributeData::clearAttributes):
1621         * dom/ElementAttributeData.h:
1622         (ElementAttributeData):
1623         (WebCore::ElementAttributeData::isMutable):
1624         (ImmutableElementAttributeData):
1625         (MutableElementAttributeData):
1626         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
1627         (WebCore::ElementAttributeData::immutableAttributeArray):
1628         (WebCore::ElementAttributeData::mutableAttributeVector):
1629         (WebCore::ElementAttributeData::length):
1630         (WebCore::ElementAttributeData::attributeItem):
1631
1632 2012-09-10  Tony Chang  <tony@chromium.org>
1633
1634         Remove stray spaces found after :: in case statements
1635         https://bugs.webkit.org/show_bug.cgi?id=96314
1636
1637         Reviewed by Ojan Vafai.
1638
1639         New contributors keep copy/pasting this style error and it makes me sad.
1640         Also remove the extra spaces in MediaQueryEvaluator.cpp.
1641
1642         No new tests, this is just a style refactor.
1643
1644         * css/CSSPrimitiveValue.cpp:
1645         (WebCore::isValidCSSUnitTypeForDoubleConversion):
1646         (WebCore::unitCategory):
1647         * css/MediaQueryEvaluator.cpp:
1648         (WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
1649
1650 2012-09-10  Adam Barth  <abarth@webkit.org>
1651
1652         [V8] setNamedHiddenWindowReference doesn't need to be a special case
1653         https://bugs.webkit.org/show_bug.cgi?id=96198
1654
1655         Reviewed by Nate Chapin.
1656
1657         Prior to this patch, the DOMWindow cached its properties on the outter
1658         global object rather than on the Holder of the properties. (We cache
1659         properties to prevent their DOM wrappers from being garbage collected
1660         too early.) There doesn't seem to be any reason why DOMWindow need to
1661         be special-cased in this regard. We can just cache the properities on
1662         their Holders, as usual.
1663
1664         * bindings/scripts/CodeGeneratorV8.pm:
1665         (GenerateNormalAttrGetter):
1666         * bindings/v8/V8DOMWrapper.cpp:
1667         * bindings/v8/V8DOMWrapper.h:
1668         (V8DOMWrapper):
1669         * bindings/v8/custom/V8LocationCustom.cpp:
1670         * page/Location.idl:
1671             - Previously, Location had a custom toV8 function so that
1672               document.location would cache its wrapper in the same place as
1673               window.location. However, that's no longer necessary as the
1674               DOMWindow now holds its Document in a hidden property, which
1675               means the DOMWindow keeps the cached location property on
1676               Document alive anyway.
1677
1678 2012-09-10  Anders Carlsson  <andersca@apple.com>
1679
1680         Silence a warning when running update-webkit-localizable-strings
1681         https://bugs.webkit.org/show_bug.cgi?id=96307
1682
1683         Reviewed by John Sullivan.
1684
1685         Since both the blockedPluginByContentSecurityPolicyText and insecurePluginVersionText strings use exact the same wording,
1686         use WEB_UI_STRING_KEY to indicate that they are different.
1687
1688         * English.lproj/Localizable.strings:
1689         Update the localizable strings file.
1690
1691         * platform/LocalizedStrings.cpp:
1692         (WebCore::blockedPluginByContentSecurityPolicyText):
1693         (WebCore::insecurePluginVersionText):
1694
1695 2012-09-10  Adam Barth  <abarth@chromium.org>
1696
1697         [V8] V8HTMLDocument::write and friends should not indirect through Frame
1698         https://bugs.webkit.org/show_bug.cgi?id=96289
1699
1700         Reviewed by Eric Seidel.
1701
1702         There is no reason why document.write and friends need to indirect
1703         through the Frame to find the active document. This patch makes these
1704         functions work the same as the JSC versions.
1705
1706         * bindings/v8/BindingState.cpp:
1707         * bindings/v8/BindingState.h:
1708             - This patch removes the last callers of activeFrame, so we can
1709               remove the function entirely.
1710         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1711         (WebCore::V8HTMLDocument::writeCallback):
1712         (WebCore::V8HTMLDocument::writelnCallback):
1713         (WebCore::V8HTMLDocument::openCallback):
1714
1715 2012-09-10  Adam Barth  <abarth@chromium.org>
1716
1717         [V8] Constructors try to handle errors that cannot occur
1718         https://bugs.webkit.org/show_bug.cgi?id=96304
1719
1720         Reviewed by Kentaro Hara.
1721
1722         There's no reason for constructors to indirect through the Frame. Now
1723         that we can reliably get the Document from the v8::Context, we can just
1724         grab it without worrying about handling error conditions related to not
1725         being able to find the Document.
1726
1727         * bindings/scripts/CodeGeneratorV8.pm:
1728         (GenerateNamedConstructorCallback):
1729         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1730         (WebCore::V8TestNamedConstructorConstructorCallback):
1731         * bindings/v8/custom/V8AudioContextCustom.cpp:
1732         (WebCore::V8AudioContext::constructorCallback):
1733         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
1734         (WebCore::v8HTMLImageElementConstructorCallback):
1735
1736 2012-09-10  Andrey Kosyakov  <caseq@chromium.org>
1737
1738         Web Inspector: highlight of paint rectangles is broken
1739         https://bugs.webkit.org/show_bug.cgi?id=96276
1740
1741         Reviewed by Vsevolod Vlasov.
1742
1743         * inspector/InspectorOverlay.cpp:
1744         (WebCore::InspectorOverlay::drawRectHighlight): Fix JS method name to match the one in InspectorOverlayPage.html
1745
1746 2012-09-10  Catalin Badea  <badea@adobe.com>
1747
1748         webkit build for 64-bit Mac chromium
1749         https://bugs.webkit.org/show_bug.cgi?id=95977
1750
1751         Reviewed by Eric Seidel.
1752
1753         Use the correct definitions for NS types in order to fix build issues for 64-bit chromium on mac.
1754
1755         * platform/chromium/PlatformSupport.h:
1756         Remove a deprecated Carbon typedef.
1757         * platform/graphics/FloatPoint.h:
1758         (FloatPoint):
1759         * platform/graphics/FloatRect.h:
1760         (FloatRect):
1761         * platform/graphics/FloatSize.h:
1762         (FloatSize):
1763         * platform/graphics/IntRect.h:
1764         (IntRect):
1765
1766 2012-09-10  Hans Muller  <hmuller@adobe.com>
1767
1768         [CSS Exlusions] add support for the basic shapes
1769         https://bugs.webkit.org/show_bug.cgi?id=95490
1770
1771         Reviewed by David Hyatt.
1772
1773         Initial commit of a subset of the ExclusionShape classes.
1774
1775         This set of classes enables the exclusions layout code to determine how to break up a line into segments
1776         that will fit within or around a shape, given the Y coordinates of the line's top edge and bottom edges.
1777         The ExclusionShape class represents BasicShapes whose coordinates have been resolved to actual values. It
1778         provides a pair of methods, getInsideIntervals() and getOutsideIntervals(), that return the line segments'
1779         start and end X coordinates, and a method that computes the shape's bounding box. The line segments'
1780         coordinates are represented by a Vector of ExclusionIntervals. ExclusionInterval is just a pair
1781         of X coordinates.
1782
1783         The other classes, ExclusionRectangle (and TBD ExclusionPolygon et al), are internal to the
1784         ExclusionShape implementation.
1785
1786         This is the initial version of the ExclusionShapes code and it's only being used to the limited extent WebKit
1787         currently supports shape-inside exclusions. It will be extended to support computing a minimal
1788         line segment's "first layout location" and other improvements, in tandem with the exclusions layout code.
1789
1790         No new tests have been added since this code just replaces a provisional implementation stub.
1791
1792         More information about the algorithms used by the ExclusionShapes classes can be found here: http://hansmuller-webkit.blogspot.com.
1793
1794         * CMakeLists.txt:
1795         * GNUmakefile.list.am:
1796         * Target.pri:
1797         * WebCore.gypi:
1798         * WebCore.vcproj/WebCore.vcproj:
1799         * WebCore.xcodeproj/project.pbxproj:
1800         * rendering/ExclusionInterval.cpp: Added.
1801         (WebCore):
1802         (WebCore::IntervalX1Comparator::operator()):
1803         Compare x1 ExclusionInterval fields.
1804         (WebCore::ExclusionInterval::intersect):
1805         Compute the intersection of this interval with another interval. Unlike merge/subtract,
1806         the result is always a single interval.
1807         (WebCore::sortExclusionIntervals):
1808         Sort a vector of intervals by their x1 (start) field.
1809         (WebCore::mergeExclusionIntervals):
1810         Union of two vectors of intervals.
1811         (WebCore::intersectExclusionIntervals):
1812         Intersecion of two vectors of intervals.
1813         (WebCore::subtractExclusionIntervals):
1814         Difference of two vectors of intervals.
1815
1816         * rendering/ExclusionInterval.h: Added.
1817         Represents the actual start and end coordinates of a horizontal line segment.
1818         (WebCore):
1819         (ExclusionInterval):
1820         (WebCore::ExclusionInterval::ExclusionInterval):
1821
1822         * rendering/ExclusionRectangle.cpp: Added.
1823         (WebCore):
1824         (WebCore::ellipseXIntercept):
1825         (WebCore::ExclusionRectangle::getOutsideIntervals):
1826         (WebCore::ExclusionRectangle::getInsideIntervals):
1827
1828         * rendering/ExclusionRectangle.h: Added.
1829         A subclass of ExclusionShape used to represent rounded rectangles, circles, and ellipses.
1830         (WebCore):
1831         (ExclusionRectangle)
1832         (WebCore::ExclusionRectangle::ExclusionRectangle):
1833         (WebCore::ExclusionRectangle::shapeBoundingBox):
1834
1835         * rendering/ExclusionShape.cpp: Added.
1836         (WebCore):
1837         (WebCore::createExclusionRectangle):
1838         (WebCore::createExclusionCircle):
1839         (WebCore::createExclusionEllipse):
1840         (WebCore::Exclusionhape::createExclusionShape):
1841         Creates an ExclusionShape given a BasicShape and the width/height of a border box.  Currently rounded
1842         rectangles, circles, and ellipses are supported.  Support for polygons will be included in the
1843         next patch.
1844
1845         * rendering/ExclusionShape.h: Added.
1846         The rest of the exclusions implementation will only depend on the definitions included by this file: ExclusionShape,
1847         and ExclusionInterval. ExclusionShape subclasses define shape-specific implementations of the methods that compute the
1848         horizontal intervals that fit within or around a specific shape, a shape's bounding box, and - in future
1849         revisions - other operations required by the exclusions implementation, like computing the first possible
1850         layout location within a shape. ExclusionShapes are created for BasicShape objects as needed, using the
1851         createExclusionShape() method.
1852         (WebCore):
1853         (ExclusionShape):
1854         (WebCore::ExclusionShape::~ExclusionShape):
1855
1856         * rendering/WrapShapeInfo.cpp:
1857         (WebCore::WrapShapeInfo::computeShapeSize):
1858         Create an ExclusionShape for the RenderBlock's BasicShape.
1859         (WebCore::WrapShapeInfo::computeSegmentsForLine):
1860         Use ExclusionShape::getInsideIntervals() to compute the shape-inside intervals within which a line will fit.
1861
1862         * rendering/WrapShapeInfo.h:
1863         (WebCore::WrapShapeInfo::shapeTop):
1864         Removed - no longer used.
1865         (WrapShapeInfo):
1866         (WebCore::WrapShapeInfo::lineState):
1867         Use the ExclusionShape's bounding box to compute lineState.
1868
1869 2012-09-07  Jer Noble  <jer.noble@apple.com>
1870
1871         <audio> and <video> should send Do Not Track when appropriate
1872         https://bugs.webkit.org/show_bug.cgi?id=96134
1873
1874         Reviewed by Eric Carlson.
1875
1876         Add a FrameLoaderClient function to determine whether the DNT header should be sent,
1877         and plumb that new function down into the MediaPlayerPrivateAVFoundationObjC class.
1878
1879         Test: http/tests/media/video-donottrack.html
1880
1881         * html/HTMLMediaElement.cpp:
1882         (WebCore::HTMLMediaElement::mediaPlayerShouldSendDoNotTrackHTTPHeader):
1883             Pass the question on through to the FrameLoaderClient.
1884         * html/HTMLMediaElement.h:
1885         * loader/FrameLoaderClient.h:
1886         (WebCore::FrameLoaderClient::shouldSendDoNotTrackHTTPHeader):
1887             Call through to the implementation in WebKit or WebKit2.
1888         * platform/graphics/MediaPlayer.h:
1889         (WebCore::MediaPlayerClient::mediaPlayerShouldSendDoNotTrackHTTPHeader):
1890             Pass the question on to the HTMLMediaElement.
1891         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1892         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
1893             If we should send the DNT header, add it to the header options array
1894             when creating the AVAsset.
1895
1896 2012-08-31  Jon Lee  <jonlee@apple.com>
1897
1898         The options dictionary in Notification constructor should not accept event listeners
1899         https://bugs.webkit.org/show_bug.cgi?id=95538
1900         <rdar://problem/12213901>
1901
1902         Reviewed by Alexey Proskuryakov.
1903
1904         The latest spec only allows setting the event listeners after the notification has been created.
1905
1906         Test: http/tests/notifications/events-in-dictionary.html
1907
1908         * Modules/notifications/Notification.cpp:
1909         (WebCore::Notification::create): Do not look for the event handlers in the options dictionary.
1910
1911 2012-09-04  Robert Hogan  <robert@webkit.org>
1912
1913         CSS 2.1 failure: content-counter-010.htm fails
1914         https://bugs.webkit.org/show_bug.cgi?id=81447
1915
1916         Reviewed by Alexey Proskuryakov.
1917
1918         Test: fast/css/content-counter-010.htm
1919
1920         Per http://lists.w3.org/Archives/Public/public-css-testsuite/2010Nov/0064.html, the correct rendering of 
1921         7000 to 7999 in Armenian changed in Nov 2010. Update implementation to match the revised spec.
1922        
1923         * rendering/RenderListMarker.cpp:
1924         (WebCore::toArmenianUnder10000):
1925
1926 2012-09-10  Thiago Marcos P. Santos  <thiago.santos@intel.com>
1927
1928         Font value should be parsed as a individual property
1929         https://bugs.webkit.org/show_bug.cgi?id=96271
1930
1931         Reviewed by Eric Seidel.
1932
1933         Parsing the font value as an individual CSS property instead of a style
1934         body should make it significantly more effective and will not
1935         validate something like ctx.font = "25px serif; background: green".
1936
1937         Updated canvas/philip/tests/2d.text.font.parse.invalid.html to cover
1938         this use case.
1939
1940         * html/canvas/CanvasRenderingContext2D.cpp:
1941         (WebCore::CanvasRenderingContext2D::setFont):
1942
1943 2012-09-10  Silvia Pfeiffer  <silviapf@chromium.org>
1944
1945         [Chromium] Handle smaller sizes of media elements in media controls.
1946         https://bugs.webkit.org/show_bug.cgi?id=89344
1947
1948         Reviewed by Eric Carlson.
1949
1950         The redesign of the Chrome video controls calls for successive removal of individual
1951         elements in the Chrome video and audio controls as the element becomes smaller in width.
1952         It also requires decreasing padding on the enclosure element of videos.
1953
1954         This patch introduces a layout() function into the MediaControlRootElementChromium to
1955         react to any changes of the media controls width and appropriately hide/show the
1956         interactive elements and apply the correct padding on video elements.
1957
1958         Tests: platform/chromium/media/controls-audio-sizes.html
1959                platform/chromium/media/controls-video-sizes-padding.html
1960                platform/chromium/media/controls-video-sizes.html
1961
1962         * html/shadow/MediaControlRootElementChromium.cpp:
1963         (WebCore):
1964         (RenderMediaControlPanelEnclosureElement):
1965         Introduce a renderer for the MediaControlPanelEnclosureElement in which to deal with the layout changes.
1966         Following the pattern in MediaControlElements.cpp .
1967         (WebCore::RenderMediaControlPanelEnclosureElement::RenderMediaControlPanelEnclosureElement):
1968         Definition of the new RenderMediaControlPanelEnclosureElement class.
1969         (WebCore::RenderMediaControlPanelEnclosureElement::layout):
1970         Definition of the layout() function for the renderer. This does most of the actual work.
1971         (WebCore::MediaControlPanelEnclosureElement::createRenderer):
1972         Create the renderer for the MediaControlPanelEnclosureElement.
1973         (WebCore::MediaControlPanelEnclosureElement::updatePadding):
1974         Update padding as part of the MediaControlPanelEnclosureElement functions.
1975         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
1976         Add a class property to store whether the duration and current time display are hidden.
1977         (WebCore::MediaControlRootElementChromium::reset):
1978         Include the hiding/showing of the timeline into the updateTimeDisplay() function to reduce code duplication.
1979         (WebCore::MediaControlRootElementChromium::playbackStarted):
1980         Include the hiding/showing of the timeline and time display into the updateTimeDisplay() function
1981         to reduce code duplication.
1982         (WebCore::MediaControlRootElementChromium::playbackProgressed):
1983         Include the hiding/showing of the timeline into the updateTimeDisplay() function to reduce code duplication.
1984         (WebCore::MediaControlRootElementChromium::playbackStopped):
1985         Include the hiding/showing of the timeline into the updateTimeDisplay() function to reduce code duplication.
1986         (WebCore::MediaControlRootElementChromium::updateTimeDisplay):
1987         Only show time display if not hidden. Add timeline update here to reduce code duplication/
1988         (WebCore::MediaControlRootElementChromium::hideVolumeSlider):
1989         New function to allow layout() function to hide the volume slider.
1990         (WebCore::MediaControlRootElementChromium::showTimeDisplay):
1991         New function to allow layout() function to show the time display.
1992         (WebCore::MediaControlRootElementChromium::hideTimeDisplay):
1993         New function to allow layout() function to hide the time display.
1994         (WebCore::MediaControlRootElementChromium::showMuteButton):
1995         New function to allow layout() function to show the mute button.
1996         (WebCore::MediaControlRootElementChromium::hideMuteButton):
1997         New function to allow layout() function to hide the mute button.
1998         (WebCore::MediaControlRootElementChromium::showFullscreenButton):
1999         New function to allow layout() function to show the fullscreen button.
2000         (WebCore::MediaControlRootElementChromium::hideFullscreenButton):
2001         New function to allow layout() function to hide the fullscreen button.
2002         (WebCore::MediaControlRootElementChromium::showTimeline):
2003         New function to allow layout() function to show the timeline.
2004         (WebCore::MediaControlRootElementChromium::hideTimeline):
2005         New function to allow layout() function to hide the timeline.
2006
2007         * html/shadow/MediaControlRootElementChromium.h:
2008         (MediaControlPanelEnclosureElement):
2009         Add a createRender() and a updatePadding() function to the MediaControlPanelEnclosureElement class.
2010         (MediaControlRootElementChromium):
2011         Add hide/show functions for volume slider, time display, mute button, fullscreen button and timeline.
2012         Add a class property to store whether the duration and current time display are hidden.
2013
2014 2012-09-10  Joanmarie Diggs  <jdiggs@igalia.com>
2015
2016         [GTK][a11y] editing/pasteboard/paste-blockquote-into-blockquote-4.html crashes
2017         https://bugs.webkit.org/show_bug.cgi?id=96199
2018
2019         Reviewed by Martin Robinson.
2020
2021         Added sanity check to correct erroneous assumption that there will
2022         always be a child object.
2023
2024         No new tests as the bug crashes two existing Layout Tests which should
2025         no longer crash as a result of this fix.
2026
2027         * accessibility/gtk/AccessibilityObjectAtk.cpp:
2028         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
2029
2030 2012-09-10  Mike West  <mkwst@chromium.org>
2031
2032         Clarify the cause of console warnings generated by "cross-origin" access to sandboxed iframes.
2033         https://bugs.webkit.org/show_bug.cgi?id=64079
2034
2035         Reviewed by Adam Barth.
2036
2037         The error message generated when accessing cross-origin content is a bit
2038         too generic at the moment, which is misleading when the "cross-origin"
2039         nature of an access attempt isn't visible in the URLs that the error
2040         displays. Sandboxed iframes, for example, are put into unique origins by
2041         default, meaning that all access in or out are subject to cross-origin
2042         restrictions, even if the resources would otherwise be same-origin.
2043
2044         This patch improces the error message to explicitly point to sandboxing
2045         as the core of cross-origin requests when relevant. It adds a single new
2046         test to check access from parents to children, and relies on existing
2047         tests for access in the other direction.
2048
2049         Test: http/tests/security/sandboxed-iframe-blocks-access-from-parent.html
2050
2051         * page/DOMWindow.cpp:
2052         (WebCore::DOMWindow::crossDomainAccessErrorMessage):
2053             Check 'isSandboxed(SandboxOrigin)' against the document and
2054             activeWindow when generating the error message. If one or the other
2055             is sandboxed, make that clear in the console warning.
2056
2057 2012-09-10  Tommy Widenflycht  <tommyw@google.com>
2058
2059         [chromium] MediaStream API: Remove the Descriptor postfix
2060         https://bugs.webkit.org/show_bug.cgi?id=96268
2061
2062         Reviewed by Adam Barth.
2063
2064         After consideration I realized that there is no need whatsoever in using the Descriptor prefix
2065         in the WekKit embedder API. Removed from WebRTCSessionDescription and WebRTCICECandidate to start with.
2066
2067         No code changes that affects functionality.
2068
2069         * WebCore.gypi:
2070         * platform/chromium/support/WebRTCICECandidate.cpp: Renamed from Source/WebCore/platform/chromium/support/WebRTCICECandidateDescriptor.cpp.
2071         (WebKit):
2072         (WebKit::WebRTCICECandidate::WebRTCICECandidate):
2073         (WebKit::WebRTCICECandidate::assign):
2074         (WebKit::WebRTCICECandidate::reset):
2075         (WebKit::WebRTCICECandidate::initialize):
2076         (WebKit::WebRTCICECandidate::operator PassRefPtr<WebCore::RTCIceCandidateDescriptor>):
2077         (WebKit::WebRTCICECandidate::candidate):
2078         (WebKit::WebRTCICECandidate::sdpMid):
2079         (WebKit::WebRTCICECandidate::sdpMLineIndex):
2080         * platform/chromium/support/WebRTCSessionDescription.cpp: Renamed from Source/WebCore/platform/chromium/support/WebRTCSessionDescriptionDescriptor.cpp.
2081         (WebKit):
2082         (WebKit::WebRTCSessionDescription::WebRTCSessionDescription):
2083         (WebKit::WebRTCSessionDescription::assign):
2084         (WebKit::WebRTCSessionDescription::reset):
2085         (WebKit::WebRTCSessionDescription::operator WTF::PassRefPtr<WebCore::RTCSessionDescriptionDescriptor>):
2086         (WebKit::WebRTCSessionDescription::initialize):
2087         (WebKit::WebRTCSessionDescription::type):
2088         (WebKit::WebRTCSessionDescription::setType):
2089         (WebKit::WebRTCSessionDescription::sdp):
2090         (WebKit::WebRTCSessionDescription::setSDP):
2091         * platform/chromium/support/WebRTCSessionDescriptionRequest.cpp:
2092         (WebKit::WebRTCSessionDescriptionRequest::requestSucceeded):
2093         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
2094         (WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
2095         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
2096         (WebKit):
2097         (RTCPeerConnectionHandlerChromium):
2098
2099 2012-09-10  Pavel Podivilov  <podivilov@chromium.org>
2100
2101         Web Inspector: support empty entries in source maps.
2102         https://bugs.webkit.org/show_bug.cgi?id=96088
2103
2104         Reviewed by Vsevolod Vlasov.
2105
2106         Empty entries should be mapped to the compiled script.
2107
2108         * inspector/front-end/CompilerScriptMapping.js:
2109         (WebInspector.CompilerScriptMapping):
2110         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
2111         (WebInspector.CompilerScriptMapping.prototype._reset):
2112         (WebInspector.SourceMapParser.prototype._parseMap):
2113
2114 2012-09-07  Andrey Kosyakov  <caseq@chromium.org>
2115
2116         Web Inspector: only display heap size statistics for timeline records when it makes sense
2117         https://bugs.webkit.org/show_bug.cgi?id=96119
2118
2119         Reviewed by Yury Semikhatsky.
2120
2121         - drop totalHeapSize from timeline records;
2122         - add usedHeapSizeDelta (not set if 0), for heap delta between start and end of the event;
2123         - only display memory details for events of scriping category or when delta is not 0;
2124
2125         * English.lproj/localizedStrings.js:
2126         * inspector/InspectorTimelineAgent.cpp:
2127         (WebCore::getUsedHeapSize):
2128         (WebCore):
2129         (WebCore::InspectorTimelineAgent::setHeapSizeStatistics):
2130         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
2131         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
2132         * inspector/InspectorTimelineAgent.h:
2133         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
2134         (TimelineRecordEntry):
2135         * inspector/front-end/TimelinePresentationModel.js:
2136         (WebInspector.TimelinePresentationModel.Record.prototype.get usedHeapSizeDelta):
2137         (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
2138
2139 2012-09-10  Simon Hausmann  <simon.hausmann@nokia.com>
2140
2141         [Qt] Drastically shorten length of commandline needed for JS bindings generator
2142         https://bugs.webkit.org/show_bug.cgi?id=96266
2143
2144         Reviewed by Kenneth Rohde Christiansen.
2145
2146         The generate-bindings script supports the SOURCE_ROOT environment variable for IDL include file
2147         lookups, which allows specifying relative include search directories.
2148
2149         * DerivedSources.pri:
2150
2151 2012-09-10  Kevin Funk  <kevin.funk@kdab.com>
2152
2153         [Qt] Fix deprecation failures if QT_NO_DEPRECATED enabled
2154         https://bugs.webkit.org/show_bug.cgi?id=96258
2155
2156         Reviewed by Simon Hausmann.
2157
2158         Sync with latest changes in Qt5.
2159
2160         * platform/qt/RenderThemeQt.cpp:
2161         * platform/qt/SharedTimerQt.cpp:
2162
2163 2012-09-10  Christophe Dumez  <christophe.dumez@intel.com>
2164
2165         [EFL] Create a toggle button for closed captions
2166         https://bugs.webkit.org/show_bug.cgi?id=96259
2167
2168         Reviewed by Kenneth Rohde Christiansen.
2169
2170         Add toggle button for closed captions to EFL's
2171         RenderTheme.
2172
2173         Test: media/video-controls-captions.html
2174
2175         * platform/efl/RenderThemeEfl.cpp:
2176         (WebCore::RenderThemeEfl::edjeGroupFromFormType):
2177         (WebCore::RenderThemeEfl::emitMediaButtonSignal):
2178         (WebCore):
2179         (WebCore::RenderThemeEfl::supportsClosedCaptioning):
2180         (WebCore::RenderThemeEfl::paintMediaToggleClosedCaptionsButton):
2181         * platform/efl/RenderThemeEfl.h:
2182         (RenderThemeEfl):
2183
2184 2012-09-10  Simon Hausmann  <simon.hausmann@nokia.com>
2185
2186         [TexMap] Fix compilation on Windows
2187         https://bugs.webkit.org/show_bug.cgi?id=96257
2188
2189         Reviewed by Noam Rosenthal.
2190
2191         TextureMapperGL uses near and far as variable names and unfortunately
2192         WinDefs.h on Windows has the nasty habit of unconditionally(!) defining
2193         near and far as empty macros. There's no way to prevent WinDefs.h from
2194         doing so. Instead we rename the variables. (Another option would've been to
2195         #undef)
2196
2197         * platform/graphics/texmap/TextureMapperGL.cpp:
2198
2199 2012-09-10  Alexander Pavlov  <apavlov@chromium.org>
2200
2201         Web Inspector: [Elements] Poor performance upon continuous attribute changes
2202         https://bugs.webkit.org/show_bug.cgi?id=96252
2203
2204         Reviewed by Vsevolod Vlasov.
2205
2206         The DOM tree is now updated after a non-zero timeout, and same node updates are coalesced rather than added into an array
2207         as many times as the DOM node has been tampered with during the update interval.
2208
2209         * inspector/front-end/ElementsTreeOutline.js:
2210         * inspector/front-end/utilities.js: Implement Map.prototype.size
2211
2212 2012-09-10  Mike West  <mkwst@chromium.org>
2213
2214         Warn authors about CSP directives ignored due to non-ASCII values.
2215         https://bugs.webkit.org/show_bug.cgi?id=96061
2216
2217         Reviewed by Adam Barth.
2218
2219         CSP defines directive values as VCHAR minus ';' and ','. Currently, we
2220         ignore these directives completely in CSPDirectiveList::parseDirective,
2221         but we don't warn authors. We ought to set their expectations correctly,
2222         and help them fix issues in their policy.
2223
2224         This patch adds a console warning for directives that are ignored, and
2225         points authors to the wonderful world of percent-encoding for situations
2226         where high-ASCII or Unicode (or whatever) characters are required.
2227
2228         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-nonascii.html
2229
2230         * page/ContentSecurityPolicy.cpp:
2231         (WebCore::CSPDirectiveList::parseDirective):
2232             Call ContentSecurityPolicy::reportInvalidDirectiveValueCharacter in
2233             order to report ignored directives.
2234         (WebCore::ContentSecurityPolicy::reportInvalidDirectiveValueCharacter):
2235         (WebCore):
2236         * page/ContentSecurityPolicy.h:
2237             Add new error message.
2238
2239 2012-09-10  Carlos Garcia Campos  <cgarcia@igalia.com>
2240
2241         Unreviewed. Fix make distcheck.
2242
2243         * GNUmakefile.list.am: Add missing header files.
2244
2245 2012-09-10  Simon Hausmann  <simon.hausmann@nokia.com>
2246
2247         [Qt] Fix linking of QtWebKit.dll on Windows
2248         https://bugs.webkit.org/show_bug.cgi?id=96250
2249
2250         Reviewed by Kenneth Rohde Christiansen.
2251
2252         On Windows when using ANGLE, the DLL import library of EGL is called libEGL.lib instead of EGL.lib.
2253         However as it turns out we do not need to explicitly link against EGL, because when Qt is configured with ANGLE
2254         support it will do that automatically for us.
2255
2256         * WebCore.pri:
2257
2258 2012-09-10  Christophe Dumez  <christophe.dumez@intel.com>
2259
2260         [EFL] fast/forms/menulist-restrict-line-height.html is failing
2261         https://bugs.webkit.org/show_bug.cgi?id=94878
2262
2263         Reviewed by Kenneth Rohde Christiansen.
2264
2265         <select> element's text is no longer clipped when a CSS
2266         line-height is specified. The fix is the same as for
2267         Mac port in r24886.
2268
2269         Test: fast/forms/menulist-restrict-line-height.html
2270
2271         * platform/efl/RenderThemeEfl.cpp:
2272         (WebCore::RenderThemeEfl::adjustMenuListStyle):
2273
2274 2012-09-10  Kevin Funk  <kevin.funk@kdab.com>
2275
2276         Replace calls to QString::fromAscii which is deprecated in Qt5
2277         https://bugs.webkit.org/show_bug.cgi?id=96242
2278
2279         Reviewed by Simon Hausmann.
2280
2281         Replace with QString::fromLatin1 which does the same.
2282
2283         * bridge/qt/qt_runtime.cpp:
2284
2285 2012-09-09  Taiju Tsuiki  <tzik@chromium.org>
2286
2287         successCallback of ResolveLocalFileSystemURL should not be optional.
2288         https://bugs.webkit.org/show_bug.cgi?id=94802
2289
2290         Reviewed by Kent Tamura.
2291
2292         Spec says it should not optional.
2293         http://www.w3.org/TR/file-system-api/#widl-LocalFileSystem-resolveLocalFileSystemURL-void-DOMString-url-EntryCallback-successCallback-ErrorCallback-errorCallback
2294
2295         Tests: fast/filesystem/entry-points-missing-arguments.html
2296
2297         * Modules/filesystem/DOMWindowFileSystem.idl:
2298         * Modules/filesystem/WorkerContextFileSystem.idl:
2299
2300 2012-09-09  Patrick Gansterer  <paroga@webkit.org>
2301
2302         Add StringBuilder::appendNumber() and use it
2303         https://bugs.webkit.org/show_bug.cgi?id=96030
2304
2305         Reviewed by Eric Seidel.
2306
2307         Also fix a bunch of append() vs. appendLiteral() issues in the surrounding code.
2308
2309         * Modules/websockets/WebSocketHandshake.cpp:
2310         (WebCore::hostName):
2311         * bindings/v8/ScriptController.cpp:
2312         (WebCore::resourceString):
2313         * css/FontFeatureValue.cpp:
2314         (WebCore::FontFeatureValue::customCssText):
2315         * dom/Position.cpp:
2316         (WebCore::Position::formatForDebugger):
2317         * dom/Range.cpp:
2318         (WebCore::Range::formatForDebugger):
2319         * html/FormController.cpp:
2320         (WebCore::FormKeyGenerator::formKey):
2321         * html/HTMLAnchorElement.cpp:
2322         (WebCore::appendServerMapMousePosition):
2323         * html/canvas/CanvasRenderingContext2D.cpp:
2324         (WebCore::CanvasRenderingContext2D::font):
2325         * inspector/IdentifiersFactory.cpp:
2326         (WebCore::IdentifiersFactory::addProcessIdPrefixTo):
2327         * page/FrameTree.cpp:
2328         (WebCore::FrameTree::uniqueChildName):
2329         * page/SecurityOrigin.cpp:
2330         (WebCore::SecurityOrigin::toRawString):
2331         * platform/Decimal.cpp:
2332         (WebCore::Decimal::toString):
2333         * platform/network/ProxyServer.cpp:
2334         (WebCore::appendProxyServerString):
2335         * platform/text/TextStream.cpp:
2336         (WebCore::TextStream::operator<<):
2337         * platform/text/TextStream.h:
2338         * rendering/RenderTreeAsText.cpp:
2339         (WebCore::nodePosition):
2340         * xml/XMLErrors.cpp:
2341         (WebCore::XMLErrors::appendErrorMessage):
2342
2343 2012-09-09  KyungTae Kim  <ktf.kim@samsung.com>
2344
2345         [EFL] Wrong rendering results for square-button-appearance.html
2346         https://bugs.webkit.org/show_bug.cgi?id=85493
2347
2348         Reviewed by Gyuyoung Kim.
2349
2350         A square-button is an element that has '-webkit-appearance: square-button' style.
2351         
2352         If it is a block element, 
2353         the RenderBlock::recomputeLogicalWidth recalculate the width from the padding values.
2354         
2355         But the recalculated width became wrong because the RenderThemeEfl::adjustSizeConstraints 
2356         called from RenderThemeEfl::adjustButtonStyle adds padding values for a button.
2357
2358         So, the adjustSizeConstraints must not be called for a square-button(SquareButtonPart).
2359
2360         Test : fast/css/square-button-appearance.html
2361
2362         * platform/efl/RenderThemeEfl.cpp:
2363         (WebCore::RenderThemeEfl::adjustButtonStyle): Call adjustSizeConstrains only for PushButtonPart and ButtonPart
2364
2365 2012-09-09  Jinwoo Song  <jinwoo7.song@samsung.com>
2366
2367         [EFL][WK2] Minibrowser locks up when right clicking editable filed
2368         https://bugs.webkit.org/show_bug.cgi?id=96074
2369
2370         Reviewed by Gyuyoung Kim.
2371
2372         WebProcess crashes when the context menu type is SubmenuType and non-CROSS_PLATFORM_CONTEXT_MENUS is used.
2373         It is because platformSubMenu() in the ContextMenuItemEfl.cpp returns null. This patch implements the setSubMenu()
2374         and platformSubMenu() to set and return the subMenuItems.
2375
2376         * platform/efl/ContextMenuItemEfl.cpp:
2377         (WebCore::ContextMenuItem::setSubMenu):
2378         (WebCore::ContextMenuItem::platformSubMenu):
2379         (WebCore):
2380
2381 2012-09-09  Kangil Han  <kangil.han@samsung.com>
2382
2383         Pass full target idl file path to CodeGenerator as a constructor argument.
2384         https://bugs.webkit.org/show_bug.cgi?id=96190
2385
2386         Reviewed by Kentaro Hara.
2387
2388         Passing idl file path to CodeGenerator would be useful because CodeGenerator* family could manipulate it when creating derived header and cpp files.
2389
2390         * bindings/scripts/CodeGenerator.pm:
2391         (new):
2392         (ProcessDocument):
2393         * bindings/scripts/generate-bindings.pl:
2394
2395 2012-09-09  Dan Bernstein  <mitz@apple.com>
2396
2397         Try to fix the build after r128006.
2398
2399         * dom/Element.cpp:
2400         (WebCore::Element::boundsInRootViewSpace): Updated for rename.
2401         (WebCore::Element::getBoundingClientRect): Ditto.
2402         * svg/SVGElement.cpp:
2403         (WebCore::SVGElement::getBoundingBox): Renamed boundingBox() to this, to avoid clashing
2404         with the virtual function on Node. The 'get' prefix also indicates that the result is
2405         returned in an out parameter.
2406         * svg/SVGElement.h:
2407         (SVGElement):
2408
2409 2012-09-09  Patrick Gansterer  <paroga@webkit.org>
2410
2411         Replace WTF::numberToString() with String::numberToStringECMAScript()
2412         https://bugs.webkit.org/show_bug.cgi?id=96130
2413
2414         Reviewed by Benjamin Poulain.
2415
2416         The String class provides a nice wrapper for this function
2417         in the meantime, so just use it to avoid code duplication.
2418
2419         * html/parser/HTMLParserIdioms.cpp:
2420         (WebCore::serializeForNumberType):
2421         * platform/Decimal.cpp:
2422         (WebCore::Decimal::fromDouble):
2423
2424 2012-09-09  Emil A Eklund  <eae@chromium.org>
2425
2426         Rename Node::getRect/getPixelSnappedRect and remove ContainerNode::getRect
2427         https://bugs.webkit.org/show_bug.cgi?id=81413
2428
2429         Reviewed by David Hyatt.
2430
2431         Rename Node::getRect and getPixelSnappedRect to boundingBox and
2432         pixelSnappedBoundingBox respectively.
2433
2434         Remove overridden getRect method from ContainerNode as it calculates the
2435         same rect as the Node implementation but in a more complicated and
2436         error-prone way. Also remove the getUpperLeftCorner/getLowerRightCorner
2437         support functions as they are no longer needed.
2438
2439         No new tests, no change in functionality.
2440
2441         * accessibility/AccessibilitySlider.cpp:
2442         (WebCore::AccessibilitySliderThumb::elementRect):
2443         Update to call boundingBox.
2444
2445         * dom/ContainerNode.cpp:
2446         * dom/ContainerNode.h:
2447         Remove overridden getRect method and the getUpperLeftCorner/
2448         getLowerRightCorner support methods .
2449
2450         * dom/Element.cpp:
2451         (WebCore::Element::scrollIntoView):
2452         (WebCore::Element::scrollIntoViewIfNeeded):
2453         (WebCore::Element::updateFocusAppearance):
2454         Update to call boundingBox.
2455         
2456         * dom/Node.h:
2457         * dom/Node.cpp:
2458         (WebCore::Node::boundingBox):
2459         Rename getRect to boundingBox.
2460
2461         (WebCore::Node::pixelSnappedBoundingBox):
2462         Rename getPixelSnappedRect to pixelSnappedBoundingBox.
2463         
2464         * html/ColorInputType.cpp:
2465         (WebCore::ColorInputType::elementRectRelativeToRootView):
2466         * html/ValidationMessage.cpp:
2467         (WebCore::ValidationMessage::buildBubbleTree):
2468         * html/shadow/CalendarPickerElement.cpp:
2469         (WebCore::CalendarPickerElement::openPopup):
2470         * html/shadow/TextControlInnerElements.cpp:
2471         (WebCore::InputFieldSpeechButtonElement::startSpeechInput):
2472         * page/FrameView.cpp:
2473         (WebCore::FrameView::scrollElementToRect):
2474         (WebCore::FrameView::scrollToAnchor):
2475         * page/SpatialNavigation.cpp:
2476         (WebCore::nodeRectInAbsoluteCoordinates):
2477         Update to call boundingBox/pixelSnappedBoundingBox.
2478
2479 2012-09-09  Christopher Cameron  <ccameron@chromium.org>
2480
2481         [chromium] Do not delete texture backing structures on the main thread
2482         https://bugs.webkit.org/show_bug.cgi?id=96018
2483
2484         Reviewed by James Robinson.
2485
2486         Do not delete CCPrioritizedTexture::Backing structures on the main
2487         thread.  Instead, unlink them from their owning CCPrioritizedTexture
2488         in the main thread, and have the impl thread then delete all unlinked
2489         textures.
2490
2491         This is towards having the main thread not access the m_backings set,
2492         which will allow the impl thread to traverse that set when deleting
2493         resources in response to GPU memory management events.
2494
2495         Tested by existing eviction tests (CCLayerTreeHostTest's
2496         TestEvictTextures, LostContextAfterEvictTextures)
2497
2498         Fix a place where single thread proxy wasn't setting the main thread
2499         blocked state correctly.
2500
2501         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2502         (WebCore::CCLayerTreeHost::unlinkAllContentTextures):
2503         (WebCore):
2504         (WebCore::CCLayerTreeHost::deleteUnlinkedTextures):
2505         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2506         (CCLayerTreeHost):
2507         * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
2508         (WebCore::CCPrioritizedTextureManager::clearAllMemory):
2509         (WebCore::CCPrioritizedTextureManager::unlinkAllBackings):
2510         (WebCore):
2511         (WebCore::CCPrioritizedTextureManager::deleteAllUnlinkedBackings):
2512         * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
2513         (CCPrioritizedTextureManager):
2514         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2515         (WebCore::CCSingleThreadProxy::commitAndComposite):
2516         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2517         (WebCore::CCThreadProxy::beginFrame):
2518         (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
2519
2520 2012-09-09  Andreas Kling  <kling@webkit.org>
2521
2522         EventListenerMap: Use Vector instead of HashMap as backend.
2523         <http://webkit.org/b/77982>
2524
2525         Reviewed by Geoff Garen.
2526
2527         Refactor EventListenerMap to store pair<AtomicString, EventListenerVector> in a Vector
2528         instead of using key/value HashMap stores. This is much more space efficient and actually
2529         faster since we were spending more time/effort managing the hash map than it costs us
2530         to iterate over and compare a couple of pointers. (It's very rare to have more than
2531         4 different event types registered in a single EventListenerMap.)
2532
2533         This gets rid of the slightly hacky optimization for nodes with listeners of a single type,
2534         reducing the complexity of EventListenerMap greatly.
2535
2536         ~1.1MB progression on Membuster. Also strong (20+ MB on larger patches) savings on WebKit
2537         bugzilla review pages, though they don't necessarily represent a common usecase.
2538
2539         * dom/EventListenerMap.cpp:
2540         (WebCore::EventListenerMap::contains):
2541         (WebCore::EventListenerMap::clear):
2542         (WebCore::EventListenerMap::eventTypes):
2543         (WebCore::EventListenerMap::add):
2544         (WebCore::EventListenerMap::remove):
2545         (WebCore::EventListenerMap::find):
2546         (WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
2547         (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
2548         (WebCore::EventListenerIterator::EventListenerIterator):
2549         (WebCore::EventListenerIterator::nextListener):
2550         * dom/EventListenerMap.h:
2551         (WebCore::EventListenerMap::isEmpty):
2552         (WebCore::EventListenerMapEntry::EventListenerMapEntry):
2553         (EventListenerMapEntry):
2554         (EventListenerMap):
2555         (EventListenerIterator):
2556
2557 2012-09-09  Lucas Forschler  <lforschler@apple.com>
2558
2559         Build Fix.  <rdar://problem/12260893>
2560         
2561         * platform/graphics/mac/WebGLLayer.mm:
2562
2563 2012-09-09  Sheriff Bot  <webkit.review.bot@gmail.com>
2564
2565         Unreviewed, rolling out r127979.
2566         http://trac.webkit.org/changeset/127979
2567         https://bugs.webkit.org/show_bug.cgi?id=96217
2568
2569         Appears to have broken the windows and linux builds (Requested
2570         by jamesr_ on #webkit).
2571
2572         * bindings/scripts/CodeGeneratorV8.pm:
2573         (NativeToJSValue):
2574         * bindings/v8/V8DOMWrapper.h:
2575         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
2576         (V8DOMWrapper):
2577
2578 2012-09-09  James Robinson  <jamesr@chromium.org>
2579
2580         [chromium] webkit_platform should only be linked into the webkit target
2581         https://bugs.webkit.org/show_bug.cgi?id=96213
2582
2583         Reviewed by Adrienne Walker.
2584
2585         The Platform.gyp:webkit_platform target provides the implementation of several WEBKIT_EXPORTed symbols. It only
2586         makes sense as a target of WebKit.gyp:webkit, other targets shouldn't directly depend on it.
2587
2588         * WebCore.gyp/WebCore.gyp:
2589
2590 2012-09-09  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2591
2592         [EFL] Fix build break when MEDIA_STREAM is enabled.
2593         https://bugs.webkit.org/show_bug.cgi?id=96063
2594
2595         Unreviewed. Fix build break when MEDIA_STREAM is enabled.
2596
2597         * CMakeLists.txt:
2598
2599 2012-09-09  Adam Barth  <abarth@webkit.org>
2600
2601         [V8] convertEventTargetToV8Object doesn't need to be overloaded
2602         https://bugs.webkit.org/show_bug.cgi?id=96195
2603
2604         Reviewed by Kentaro Hara.
2605
2606         WTF::getPtr solves this problem for us.
2607
2608         * bindings/scripts/CodeGeneratorV8.pm:
2609         (NativeToJSValue):
2610         * bindings/v8/V8DOMWrapper.h:
2611         (V8DOMWrapper):
2612
2613 2012-09-09  Adam Barth  <abarth@webkit.org>
2614
2615         [V8] V8PerContextData holds m_context using a v8::Handle rather than a v8::Persistent
2616         https://bugs.webkit.org/show_bug.cgi?id=96193
2617
2618         Reviewed by Kentaro Hara.
2619
2620         There are two types of handles in V8: Local and Persistent. We are now
2621         permitted to keep Local handles in the heap because they get
2622         deallocated when the C++ stack unwinds and v8::HandleScope objects are
2623         destructed.
2624
2625         V8PerContextData holds its m_context using the non-specific v8::Handle
2626         type. If we used a Local handle here, we'd have a memory safety
2627         problem. Thankfully, we use a Persistent handle, which need to be
2628         allocated and freed manually.
2629
2630         This patch makes the type of V8PerContextData::m_context more specific
2631         to ensure that we never try to store a local handle in this variable.
2632         This patch should not have any behavior change because we were already
2633         storing a Persistent handle.
2634
2635         * bindings/v8/V8PerContextData.h:
2636         (WebCore::V8PerContextData::create):
2637         (WebCore::V8PerContextData::V8PerContextData):
2638         (V8PerContextData):
2639
2640 2012-09-09  Adam Barth  <abarth@webkit.org>
2641
2642         [V8] V8DOMWindowShell does not need to be RefCounted
2643         https://bugs.webkit.org/show_bug.cgi?id=96192
2644
2645         Reviewed by Kentaro Hara.
2646
2647         V8DOMWindowShell holds a raw Frame pointer, which would point to
2648         unallocated memory if any object that wasn't owned by the frame took a
2649         reference to a V8DOMWindowShell. Thankfully, the only object that takes
2650         a reference to the V8DOMWindowShell is ScriptController, which is owned
2651         by the Frame.
2652
2653         This patch stops V8DOMWindowShell from being RefCounted so that no
2654         other objects are tempted to take a reference to it in the future.
2655
2656         * bindings/v8/ScriptController.h:
2657         (ScriptController):
2658         * bindings/v8/V8DOMWindowShell.cpp:
2659         (WebCore::V8DOMWindowShell::create):
2660         * bindings/v8/V8DOMWindowShell.h:
2661         (V8DOMWindowShell):
2662
2663 2012-09-08  Adam Barth  <abarth@webkit.org>
2664
2665         [V8] unsafeHandleToCurrentWorldContext doesn't need to exist
2666         https://bugs.webkit.org/show_bug.cgi?id=96191
2667
2668         Reviewed by Kentaro Hara.
2669
2670         Previously, we used this function when instantiating DOM wrappers. Now
2671         we get the context from the creationContext, so we don't need access to
2672         this unsafe handle. This patch inlines the function into its one other
2673         caller.
2674
2675         * bindings/v8/ScriptController.cpp:
2676         (WebCore::ScriptController::currentWorldContext):
2677         * bindings/v8/ScriptController.h:
2678         (ScriptController):
2679
2680 2012-09-08  Benjamin Poulain  <bpoulain@apple.com>
2681
2682         Specialize nextBreakablePosition depending on breakNBSP
2683         https://bugs.webkit.org/show_bug.cgi?id=96042
2684
2685         Reviewed by Eric Seidel.
2686
2687         The speed of isBreakableSpace() is limited by the speed of the inner loop of nextBreakablePosition().
2688         The branches done to handle noBreakSpace can be simplified outside the loop
2689         to reduce the number of tests inside the loop.
2690
2691         This patch split the code of nextBreakablePosition() in two function, depending if breakNBSP is true
2692         or false.
2693
2694         If breakNBSP is true, isBreakableSpace() would return true on noBreakSpace.
2695         ->There is no need to test that value again for needsLineBreakIterator().
2696         ->There is no need to special case the switch() of isBreakableSpace() for noBreakSpace.
2697
2698         If breakNBSP is false:
2699         ->isBreakableSpace() does not need to test for noBreakSpace.
2700
2701         On x86_64, this improves PerformanceTests/Layout/line-layout.html by 2.8%.
2702
2703         * rendering/break_lines.cpp:
2704         (WebCore::isBreakableSpace):
2705         (WebCore::nextBreakablePositionIgnoringNBSP):
2706         (WebCore::nextBreakablePosition):
2707         * rendering/break_lines.h:
2708         (WebCore::isBreakable): Remove the default value for breakNBSP, no caller is using it.
2709
2710 2012-09-08  Adam Barth  <abarth@chromium.org>
2711
2712         [V8] DOM wrapper creation involves a bunch of sketchy code related to finding the Frame
2713         https://bugs.webkit.org/show_bug.cgi?id=96147
2714
2715         Reviewed by Eric Seidel.
2716
2717         Previously, we used the Frame when instantiating DOM wrappers. That's
2718         sketchy because not all DOM wrappers know how to find their Frame, and
2719         the Frame might be displaying a different document now anyway. This
2720         patch now gets all the information directly from the creation context.
2721
2722         In addition, this patch gets the proper creation context in a few more
2723         cases, including Location.
2724
2725         * bindings/scripts/CodeGeneratorV8.pm:
2726         (GetInternalFields):
2727         (GenerateNormalAttrGetter):
2728         (GenerateToV8Converters):
2729         (GenerateFunctionCallString):
2730         (NativeToJSValue):
2731         * bindings/scripts/test/V8/V8Float64Array.cpp:
2732         (WebCore::Float64ArrayV8Internal::fooCallback):
2733         (WebCore::V8Float64Array::wrapSlow):
2734         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2735         (WebCore::V8TestActiveDOMObject::wrapSlow):
2736         * bindings/scripts/test/V8/V8TestCallback.cpp:
2737         (WebCore::V8TestCallback::callbackWithClass1Param):
2738         (WebCore::V8TestCallback::callbackWithClass2Param):
2739         (WebCore::V8TestCallback::callbackWithStringList):
2740         (WebCore::V8TestCallback::callbackRequiresThisToPass):
2741         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2742         (WebCore::V8TestCustomNamedGetter::wrapSlow):
2743         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2744         (WebCore::V8TestEventConstructor::wrapSlow):
2745         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2746         (WebCore::TestEventTargetV8Internal::itemCallback):
2747         (WebCore::V8TestEventTarget::wrapSlow):
2748         * bindings/scripts/test/V8/V8TestException.cpp:
2749         (WebCore::V8TestException::wrapSlow):
2750         * bindings/scripts/test/V8/V8TestInterface.cpp:
2751         (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetter):
2752         (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
2753         (WebCore::V8TestInterface::wrapSlow):
2754         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2755         (WebCore::V8TestMediaQueryListListener::wrapSlow):
2756         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2757         (WebCore::V8TestNamedConstructor::wrapSlow):
2758         * bindings/scripts/test/V8/V8TestNode.cpp:
2759         (WebCore::V8TestNode::wrapSlow):
2760         * bindings/scripts/test/V8/V8TestObj.cpp:
2761         (WebCore::TestObjV8Internal::testObjAttrAttrGetter):
2762         (WebCore::TestObjV8Internal::XMLObjAttrAttrGetter):
2763         (WebCore::TestObjV8Internal::typedArrayAttrAttrGetter):
2764         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetter):
2765         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
2766         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
2767         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
2768         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
2769         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
2770         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
2771         (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
2772         (WebCore::TestObjV8Internal::objMethodCallback):
2773         (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
2774         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
2775         (WebCore::TestObjV8Internal::withScriptStateObjCallback):
2776         (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
2777         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
2778         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
2779         (WebCore::TestObjV8Internal::getSVGDocumentCallback):
2780         (WebCore::TestObjV8Internal::strictFunctionCallback):
2781         (WebCore::V8TestObj::wrapSlow):
2782         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2783         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
2784         * bindings/v8/V8DOMWindowShell.cpp:
2785         (WebCore::V8DOMWindowShell::disposeContext):
2786         * bindings/v8/V8DOMWrapper.cpp:
2787         (WebCore::V8DOMWrapper::instantiateV8Object):
2788         * bindings/v8/V8DOMWrapper.h:
2789         (V8DOMWrapper):
2790         * bindings/v8/V8PerContextData.cpp:
2791         (WebCore):
2792         (WebCore::V8PerContextData::current):
2793         (WebCore::V8PerContextData::dispose):
2794         (WebCore::V8PerContextData::init):
2795         * bindings/v8/V8PerContextData.h:
2796         (V8PerContextData):
2797
2798 2012-09-08  Arvid Nilsson  <anilsson@rim.com>
2799
2800         [CSS Shaders] [BlackBerry] Refactor CustomFilterMesh and CustomFilter*Program
2801         https://bugs.webkit.org/show_bug.cgi?id=94725
2802
2803         Reviewed by George Staikos.
2804
2805         Separate the MeshGenerator from the CustomFilterMesh into
2806         CustomFilterMeshGenerator.h/cpp. This allows the BlackBerry port to
2807         reuse the mesh generator in its accelerated compositing implementation.
2808
2809         Also add support for creating a "PlatformCompiledProgram" from a
2810         CustomFilterValidatedProgram, so the BlackBerry port can reuse the
2811         shader validation code in its accelerated compositing implementation.
2812
2813         It turns out the GraphicsContext3D is not needed for ANGLE to function,
2814         so this patch removes an ASSERT that required a context before
2815         validating the shaders using ANGLE. This allows the BlackBerry port to
2816         reuse the validation code without triggering the assert. In the future,
2817         the validation code could be moved to a separate class to make it more
2818         obvious that it isn't really related to GraphicsContext3D.
2819
2820         In general, this refactoring can be useful for any port that uses
2821         OpenGL to implement accelerated compositing.
2822
2823         Inspired by an original patch by Joshua Netterfield.
2824
2825         No new tests, because this patch implements no new functionality.
2826
2827         * GNUmakefile.list.am:
2828         * Target.pri:
2829         * WebCore.gypi:
2830         * WebCore.vcproj/WebCore.vcproj:
2831         * WebCore.xcodeproj/project.pbxproj:
2832         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
2833         (WebCore::CustomFilterGlobalContext::getValidatedProgram):
2834         * platform/graphics/filters/CustomFilterMesh.cpp:
2835         (WebCore::CustomFilterMesh::CustomFilterMesh):
2836         * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Added.
2837         (WebCore):
2838         (WebCore::CustomFilterMeshGenerator::CustomFilterMeshGenerator):
2839         (WebCore::CustomFilterMeshGenerator::addAttachedMeshIndex):
2840         (WebCore::CustomFilterMeshGenerator::generateAttachedMesh):
2841         (WebCore::CustomFilterMeshGenerator::addDetachedMeshVertexAndIndex):
2842         (WebCore::CustomFilterMeshGenerator::generateDetachedMesh):
2843         (WebCore::CustomFilterMeshGenerator::addPositionAttribute):
2844         (WebCore::CustomFilterMeshGenerator::addTexCoordAttribute):
2845         (WebCore::CustomFilterMeshGenerator::addMeshCoordAttribute):
2846         (WebCore::CustomFilterMeshGenerator::addTriangleCoordAttribute):
2847         (WebCore::CustomFilterMeshGenerator::addAttachedMeshVertexAttributes):
2848         (WebCore::CustomFilterMeshGenerator::addDetachedMeshVertexAttributes):
2849         (WebCore::CustomFilterMeshGenerator::dumpBuffers):
2850         * platform/graphics/filters/CustomFilterMeshGenerator.h: Added.
2851         (WebCore):
2852         (CustomFilterMeshGenerator):
2853         (WebCore::CustomFilterMeshGenerator::vertices):
2854         (WebCore::CustomFilterMeshGenerator::indices):
2855         (WebCore::CustomFilterMeshGenerator::points):
2856         (WebCore::CustomFilterMeshGenerator::pointsCount):
2857         (WebCore::CustomFilterMeshGenerator::tiles):
2858         (WebCore::CustomFilterMeshGenerator::tilesCount):
2859         (WebCore::CustomFilterMeshGenerator::indicesCount):
2860         (WebCore::CustomFilterMeshGenerator::floatsPerVertex):
2861         (WebCore::CustomFilterMeshGenerator::verticesCount):
2862         (WebCore::CustomFilterMeshGenerator::addTile):
2863         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
2864         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
2865         (WebCore::CustomFilterValidatedProgram::compiledProgram):
2866         (WebCore::CustomFilterValidatedProgram::~CustomFilterValidatedProgram):
2867         (WebCore):
2868         (WebCore::CustomFilterValidatedProgram::platformCompiledProgram):
2869         (WebCore::CustomFilterValidatedProgram::platformDestroy):
2870         * platform/graphics/filters/CustomFilterValidatedProgram.h:
2871         (WebCore):
2872         (CustomFilterValidatedProgram):
2873         * platform/graphics/filters/blackberry/CustomFilterValidatedProgramBlackBerry.cpp: Added.
2874         (WebCore):
2875         (WebCore::CustomFilterValidatedProgram::platformCompiledProgram):
2876         (WebCore::CustomFilterValidatedProgram::platformDestroy):
2877
2878 2012-09-07  Simon Hausmann  <simon.hausmann@nokia.com>
2879
2880         Fix the build of OpenGLShims on Windows
2881         https://bugs.webkit.org/show_bug.cgi?id=96123
2882
2883         Reviewed by Kenneth Rohde Christiansen.
2884
2885         OpenGL functions on Windows are generally defined as __stdcall, so we need to make sure
2886         that we declare our own "copies" of those functions with the same calling convention.
2887
2888         This is also required for the situation where we build against ANGLE, because then we
2889         initialize the function table entries with a direct assignment (entry = ::glMyFunction())
2890         and the assignment does not compile if the types don't match, i.e. if RHS has a different
2891         calling convention than LHS.
2892
2893         The approach chosen is basically the same as in the Khronos headers,
2894         using a GLAPIENTRY macro.
2895
2896         * platform/graphics/OpenGLShims.h:
2897
2898 2012-09-07  Benjamin Poulain  <bpoulain@apple.com>
2899
2900         Rename the ustring() accessor to string()
2901         https://bugs.webkit.org/show_bug.cgi?id=95919
2902
2903         Reviewed by Geoffrey Garen.
2904
2905         * bindings/js/Dictionary.cpp:
2906         (WebCore::Dictionary::getOwnPropertiesAsStringHashMap):
2907         (WebCore::Dictionary::getOwnPropertyNames):
2908         * bindings/js/SerializedScriptValue.cpp:
2909         Simplify a few String constructions which were still using type conversion
2910         through StringImpl.
2911
2912         (WebCore::CloneSerializer::write):
2913         (WebCore::CloneDeserializer::CachedString::string):
2914         (WebCore::CloneDeserializer::readFile):
2915         (WebCore::CloneDeserializer::readTerminal):
2916         (WebCore::CloneDeserializer::deserialize):
2917         * bridge/NP_jsobject.cpp:
2918         (_NPN_Enumerate):
2919
2920 2012-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
2921
2922         Unreviewed, rolling out r127955.
2923         http://trac.webkit.org/changeset/127955
2924         https://bugs.webkit.org/show_bug.cgi?id=96174
2925
2926         Hits an ASSERT (Requested by abarth on #webkit).
2927
2928         * bindings/scripts/CodeGeneratorV8.pm:
2929         (GetInternalFields):
2930         (GenerateNormalAttrGetter):
2931         (GenerateToV8Converters):
2932         (GenerateFunctionCallString):
2933         (NativeToJSValue):
2934         * bindings/scripts/test/V8/V8Float64Array.cpp:
2935         (WebCore::Float64ArrayV8Internal::fooCallback):
2936         (WebCore::V8Float64Array::wrapSlow):
2937         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2938         (WebCore::V8TestActiveDOMObject::wrapSlow):
2939         * bindings/scripts/test/V8/V8TestCallback.cpp:
2940         (WebCore::V8TestCallback::callbackWithClass1Param):
2941         (WebCore::V8TestCallback::callbackWithClass2Param):
2942         (WebCore::V8TestCallback::callbackWithStringList):
2943         (WebCore::V8TestCallback::callbackRequiresThisToPass):
2944         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2945         (WebCore::V8TestCustomNamedGetter::wrapSlow):
2946         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2947         (WebCore::V8TestEventConstructor::wrapSlow):
2948         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2949         (WebCore::TestEventTargetV8Internal::itemCallback):
2950         (WebCore::V8TestEventTarget::wrapSlow):
2951         * bindings/scripts/test/V8/V8TestException.cpp:
2952         (WebCore::V8TestException::wrapSlow):
2953         * bindings/scripts/test/V8/V8TestInterface.cpp:
2954         (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetter):
2955         (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
2956         (WebCore::V8TestInterface::wrapSlow):
2957         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2958         (WebCore::V8TestMediaQueryListListener::wrapSlow):
2959         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2960         (WebCore::V8TestNamedConstructor::wrapSlow):
2961         * bindings/scripts/test/V8/V8TestNode.cpp:
2962         (WebCore::V8TestNode::wrapSlow):
2963         * bindings/scripts/test/V8/V8TestObj.cpp:
2964         (WebCore::TestObjV8Internal::testObjAttrAttrGetter):
2965         (WebCore::TestObjV8Internal::XMLObjAttrAttrGetter):
2966         (WebCore::TestObjV8Internal::typedArrayAttrAttrGetter):
2967         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetter):
2968         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
2969         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
2970         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
2971         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
2972         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
2973         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
2974         (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
2975         (WebCore::TestObjV8Internal::objMethodCallback):
2976         (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
2977         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
2978         (WebCore::TestObjV8Internal::withScriptStateObjCallback):
2979         (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
2980         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
2981         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
2982         (WebCore::TestObjV8Internal::getSVGDocumentCallback):
2983         (WebCore::TestObjV8Internal::strictFunctionCallback):
2984         (WebCore::V8TestObj::wrapSlow):
2985         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2986         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
2987         * bindings/v8/V8DOMWindowShell.cpp:
2988         (WebCore::V8DOMWindowShell::disposeContext):
2989         * bindings/v8/V8DOMWrapper.cpp:
2990         (WebCore::V8DOMWrapper::instantiateV8Object):
2991         * bindings/v8/V8DOMWrapper.h:
2992         (V8DOMWrapper):
2993         * bindings/v8/V8PerContextData.cpp:
2994         (WebCore::V8PerContextData::dispose):
2995         (WebCore::V8PerContextData::init):
2996         * bindings/v8/V8PerContextData.h:
2997         (V8PerContextData):
2998
2999 2012-09-06  Jeffrey Pfau  <jpfau@apple.com>
3000
3001         Extend third-party storage blocking API to optionally allow blocking all storage
3002         https://bugs.webkit.org/show_bug.cgi?id=95915
3003
3004         Reviewed by Brady Eidson.
3005
3006         Replace boolean API with tri-state API that allows for blocking no, third-party, or all storage.
3007
3008         Tests: http/tests/security/same-origin-shared-worker-blocked.html
3009                http/tests/security/same-origin-storage-blocked.html
3010                http/tests/security/same-origin-websql-blocked.html
3011
3012         * dom/Document.cpp:
3013         (WebCore::Document::initSecurityContext):
3014         * page/SecurityOrigin.cpp:
3015         (WebCore::SecurityOrigin::SecurityOrigin):
3016         (WebCore::SecurityOrigin::canAccessStorage):
3017         * page/SecurityOrigin.h:
3018         (WebCore::SecurityOrigin::setStorageBlockingPolicy):
3019         (SecurityOrigin):
3020         * page/Settings.cpp:
3021         (WebCore::Settings::Settings):
3022         * page/Settings.h:
3023         (WebCore::Settings::setStorageBlockingPolicy):
3024         (WebCore::Settings::storageBlockingPolicy):
3025         (Settings):
3026         * testing/InternalSettings.cpp:
3027         (WebCore::InternalSettings::setStorageBlockingPolicy):
3028         * testing/InternalSettings.h:
3029         (InternalSettings):
3030         * testing/InternalSettings.idl:
3031
3032 2012-09-07  Adam Barth  <abarth@chromium.org>
3033
3034         [V8] DOM wrapper creation involves a bunch of sketchy code related to finding the Frame
3035         https://bugs.webkit.org/show_bug.cgi?id=96147
3036
3037         Reviewed by Eric Seidel.
3038
3039         Previously, we used the Frame when instantiating DOM wrappers. That's
3040         sketchy because not all DOM wrappers know how to find their Frame, and
3041         the Frame might be displaying a different document now anyway. This
3042         patch now gets all the information directly from the creation context.
3043
3044         In addition, this patch gets the proper creation context in a few more
3045         cases, including Location.
3046
3047         * bindings/scripts/CodeGeneratorV8.pm:
3048         (GetInternalFields):
3049         (GenerateNormalAttrGetter):
3050         (GenerateToV8Converters):
3051         (GenerateFunctionCallString):
3052         (NativeToJSValue):
3053         * bindings/scripts/test/V8/V8Float64Array.cpp:
3054         (WebCore::Float64ArrayV8Internal::fooCallback):
3055         (WebCore::V8Float64Array::wrapSlow):
3056         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3057         (WebCore::V8TestActiveDOMObject::wrapSlow):
3058         * bindings/scripts/test/V8/V8TestCallback.cpp:
3059         (WebCore::V8TestCallback::callbackWithClass1Param):
3060         (WebCore::V8TestCallback::callbackWithClass2Param):
3061         (WebCore::V8TestCallback::callbackWithStringList):
3062         (WebCore::V8TestCallback::callbackRequiresThisToPass):
3063         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3064         (WebCore::V8TestCustomNamedGetter::wrapSlow):
3065         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3066         (WebCore::V8TestEventConstructor::wrapSlow):
3067         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3068         (WebCore::TestEventTargetV8Internal::itemCallback):
3069         (WebCore::V8TestEventTarget::wrapSlow):
3070         * bindings/scripts/test/V8/V8TestException.cpp:
3071         (WebCore::V8TestException::wrapSlow):
3072         * bindings/scripts/test/V8/V8TestInterface.cpp:
3073         (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetter):
3074         (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
3075         (WebCore::V8TestInterface::wrapSlow):
3076         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3077         (WebCore::V8TestMediaQueryListListener::wrapSlow):
3078         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
3079         (WebCore::V8TestNamedConstructor::wrapSlow):
3080         * bindings/scripts/test/V8/V8TestNode.cpp:
3081         (WebCore::V8TestNode::wrapSlow):
3082         * bindings/scripts/test/V8/V8TestObj.cpp:
3083         (WebCore::TestObjV8Internal::testObjAttrAttrGetter):
3084         (WebCore::TestObjV8Internal::XMLObjAttrAttrGetter):
3085         (WebCore::TestObjV8Internal::typedArrayAttrAttrGetter):
3086         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetter):
3087         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
3088         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
3089         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
3090         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
3091         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
3092         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
3093         (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
3094         (WebCore::TestObjV8Internal::objMethodCallback):
3095         (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
3096         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
3097         (WebCore::TestObjV8Internal::withScriptStateObjCallback):
3098         (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
3099         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
3100         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
3101         (WebCore::TestObjV8Internal::getSVGDocumentCallback):
3102         (WebCore::TestObjV8Internal::strictFunctionCallback):
3103         (WebCore::V8TestObj::wrapSlow):
3104         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3105         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
3106         * bindings/v8/V8DOMWindowShell.cpp:
3107         (WebCore::V8DOMWindowShell::disposeContext):
3108         * bindings/v8/V8DOMWrapper.cpp:
3109         (WebCore::V8DOMWrapper::instantiateV8Object):
3110         * bindings/v8/V8DOMWrapper.h:
3111         (V8DOMWrapper):
3112         * bindings/v8/V8PerContextData.cpp:
3113         (WebCore):
3114         (WebCore::V8PerContextData::current):
3115         (WebCore::V8PerContextData::dispose):
3116         (WebCore::V8PerContextData::init):
3117         * bindings/v8/V8PerContextData.h:
3118         (V8PerContextData):
3119
3120 2012-09-07  James Robinson  <jamesr@chromium.org>
3121
3122         [chromium] Remove transitional WebCompositorSupport fallback code
3123         https://bugs.webkit.org/show_bug.cgi?id=96155
3124
3125         Reviewed by Adrienne Walker.
3126
3127         The implementation of WebCompositorSupport has rolled out everywhere and the static ::create() functions are
3128         going way.
3129
3130         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
3131         (WebCore::createScrollbarLayer):
3132         * platform/graphics/chromium/AnimationTranslationUtil.cpp:
3133         (WebCore::createWebAnimation):
3134         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
3135         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
3136         * platform/graphics/chromium/DrawingBufferChromium.cpp:
3137         (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
3138         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
3139         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
3140         (WebCore::GraphicsLayerChromium::setContentsToImage):
3141         (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
3142
3143 2012-09-07  Simon Hausmann  <simon.hausmann@nokia.com>
3144
3145         Fix compilation of TextureMapperShaderManager.cpp with MSVC
3146         https://bugs.webkit.org/show_bug.cgi?id=96121
3147
3148         Reviewed by Kenneth Rohde Christiansen.
3149
3150         Named variadic parameters in macros appear to be a GCC extension. Fortunately __VA_ARGS__ seems
3151         to work with GCC and MSVC here.
3152
3153         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
3154         (WebCore):
3155         (WebCore::StandardFilterProgram::StandardFilterProgram):
3156
3157 2012-09-07  Victoria Kirst  <vrk@chromium.org>
3158
3159         Seek to end after duration change in HTMLMediaElement
3160         https://bugs.webkit.org/show_bug.cgi?id=95986
3161
3162         Reviewed by Eric Carlson.
3163
3164         This seeks the media element to the end of the media resource if the current playback
3165         position has become greater than the duration after a duration change.
3166         http://dev.w3.org/html5/spec/media-elements.html#durationChange
3167
3168         Test: http/tests/media/media-source/seek-to-end-after-duration-change.html
3169
3170         * html/HTMLMediaElement.cpp:
3171         (WebCore::HTMLMediaElement::mediaPlayerDurationChanged): After firing the duration change event, checks to see if current time exceeds duration and if so, seeks to duration.
3172
3173 2012-09-07  James Robinson  <jamesr@chromium.org>
3174
3175         [chromium] Implement WebCompositorInputHandlerImpl on top of exposed API instead of CC internals
3176         https://bugs.webkit.org/show_bug.cgi?id=96151
3177
3178         Reviewed by Adrienne Walker.
3179
3180         Reworks the CC hookup for input handling to be more similar to the OutputSurface handling. If on compositor
3181         startup we want to initialize threaded input handling, we ask the embedder for a CCInputHandler implementation
3182         via CCLayerTreeHostClient. If the client provides one, we later bind this to a CCInputHandlerClient (actually
3183         CCLayerTreeHostImpl) from the compositor thread.
3184
3185         * platform/graphics/chromium/cc/CCInputHandler.h:
3186         (WebCore):
3187         (CCInputHandler):
3188         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3189         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
3190         (WebCore::CCLayerTreeHost::initialize):
3191         (WebCore::CCLayerTreeHost::createInputHandler):
3192         (WebCore):
3193         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3194         (CCLayerTreeHost):
3195         * platform/graphics/chromium/cc/CCLayerTreeHostClient.h:
3196         (WebCore):
3197         (CCLayerTreeHostClient):
3198         * platform/graphics/chromium/cc/CCProxy.h:
3199         (CCProxy):
3200         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3201         (WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
3202         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
3203         (CCSingleThreadProxy):
3204         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3205         (WebCore::CCThreadProxy::CCThreadProxy):
3206         (WebCore::CCThreadProxy::start):
3207         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
3208         (WebCore::CCThreadProxy::initializeImplOnImplThread):
3209         * platform/graphics/chromium/cc/CCThreadProxy.h:
3210         (CCThreadProxy):
3211
3212 2012-09-07  Adam Barth  <abarth@chromium.org>
3213
3214         [V8] Use a v8::Object rather than a v8::Context to represent the creationContext
3215         https://bugs.webkit.org/show_bug.cgi?id=96154
3216
3217         Reviewed by Eric Seidel.
3218
3219         This patch is a mechanical search-and-replace. Using a v8::Object
3220         rather than a v8::Context lets us delay the call to CreationContext()
3221         until we actually need to call it. This should not affect behavior.
3222
3223         * bindings/scripts/CodeGeneratorV8.pm:
3224         (GenerateHeader):
3225         (GenerateNormalAttrGetter):
3226         (GenerateNamedConstructorCallback):
3227         (GenerateImplementation):
3228         (GenerateToV8Converters):
3229         (GenerateFunctionCallString):
3230         (NativeToJSValue):
3231         * bindings/scripts/test/V8/V8Float64Array.cpp:
3232         (WebCore::Float64ArrayV8Internal::fooCallback):
3233         (WebCore::toV8):
3234         (WebCore::V8Float64Array::wrapSlow):
3235         * bindings/scripts/test/V8/V8Float64Array.h:
3236         (V8Float64Array):
3237         (WebCore::V8Float64Array::wrap):
3238         (WebCore):
3239         (WebCore::toV8):
3240         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3241         (WebCore::V8TestActiveDOMObject::wrapSlow):
3242         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
3243         (V8TestActiveDOMObject):
3244         (WebCore::V8TestActiveDOMObject::wrap):
3245         (WebCore::toV8):
3246         * bindings/scripts/test/V8/V8TestCallback.cpp:
3247         (WebCore::V8TestCallback::callbackWithClass1Param):
3248         (WebCore::V8TestCallback::callbackWithClass2Param):
3249         (WebCore::V8TestCallback::callbackWithStringList):
3250         (WebCore::V8TestCallback::callbackRequiresThisToPass):
3251         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3252         (WebCore::V8TestCustomNamedGetter::wrapSlow):
3253         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3254         (V8TestCustomNamedGetter):
3255         (WebCore::V8TestCustomNamedGetter::wrap):
3256         (WebCore::toV8):
3257         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3258         (WebCore::V8TestEventConstructor::wrapSlow):
3259         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3260         (V8TestEventConstructor):
3261         (WebCore::V8TestEventConstructor::wrap):
3262         (WebCore::toV8):
3263         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3264         (WebCore::TestEventTargetV8Internal::itemCallback):
3265         (WebCore::V8TestEventTarget::wrapSlow):
3266         * bindings/scripts/test/V8/V8TestEventTarget.h:
3267         (V8TestEventTarget):
3268         (WebCore::V8TestEventTarget::wrap):
3269         (WebCore::toV8):
3270         * bindings/scripts/test/V8/V8TestException.cpp:
3271         (WebCore::V8TestException::wrapSlow):
3272         * bindings/scripts/test/V8/V8TestException.h:
3273         (V8TestException):
3274         (WebCore::V8TestException::wrap):
3275         (WebCore::toV8):
3276         * bindings/scripts/test/V8/V8TestInterface.cpp:
3277         (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetter):
3278         (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
3279         (WebCore::V8TestInterface::wrapSlow):
3280         * bindings/scripts/test/V8/V8TestInterface.h:
3281         (V8TestInterface):
3282         (WebCore::V8TestInterface::wrap):
3283         (WebCore::toV8):
3284         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3285         (WebCore::V8TestMediaQueryListListener::wrapSlow):
3286         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3287         (V8TestMediaQueryListListener):
3288         (WebCore::V8TestMediaQueryListListener::wrap):
3289         (WebCore::toV8):
3290         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
3291         (WebCore::V8TestNamedConstructorConstructorCallback):
3292         (WebCore::V8TestNamedConstructor::wrapSlow):
3293         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3294         (V8TestNamedConstructor):
3295         (WebCore::V8TestNamedConstructor::wrap):
3296         (WebCore::toV8):
3297         * bindings/scripts/test/V8/V8TestNode.cpp:
3298         (WebCore::V8TestNode::wrapSlow):
3299         * bindings/scripts/test/V8/V8TestNode.h:
3300         (V8TestNode):
3301         (WebCore::V8TestNode::wrap):
3302         (WebCore::toV8):
3303         * bindings/scripts/test/V8/V8TestObj.cpp:
3304         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
3305         (WebCore::TestObjV8Internal::testObjAttrAttrGetter):
3306         (WebCore::TestObjV8Internal::XMLObjAttrAttrGetter):
3307         (WebCore::TestObjV8Internal::typedArrayAttrAttrGetter):
3308         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetter):
3309         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
3310         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetter):
3311         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
3312         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
3313         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
3314         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
3315         (WebCore::TestObjV8Internal::cachedAttribute1AttrGetter):
3316         (WebCore::TestObjV8Internal::cachedAttribute2AttrGetter):
3317         (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
3318         (WebCore::TestObjV8Internal::mutablePointAttrGetter):
3319         (WebCore::TestObjV8Internal::immutablePointAttrGetter):
3320         (WebCore::TestObjV8Internal::objMethodCallback):
3321         (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
3322         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
3323         (WebCore::TestObjV8Internal::withScriptStateObjCallback):
3324         (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
3325         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
3326         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
3327         (WebCore::TestObjV8Internal::getSVGDocumentCallback):
3328         (WebCore::TestObjV8Internal::mutablePointFunctionCallback):
3329         (WebCore::TestObjV8Internal::immutablePointFunctionCallback):
3330         (WebCore::TestObjV8Internal::strictFunctionCallback):
3331         (WebCore::V8TestObj::wrapSlow):
3332         * bindings/scripts/test/V8/V8TestObj.h:
3333         (V8TestObj):
3334         (WebCore::V8TestObj::wrap):
3335         (WebCore::toV8):
3336         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3337         (WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetter):
3338         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
3339         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3340         (V8TestSerializedScriptValueInterface):
3341         (WebCore::V8TestSerializedScriptValueInterface::wrap):
3342         (WebCore::toV8):
3343         * bindings/v8/DOMTransaction.cpp:
3344         (WebCore::DOMTransaction::callFunction):
3345         * bindings/v8/IDBCustomBindings.cpp:
3346         (WebCore::V8IDBCursorWithValue::valueAccessorGetter):
3347         * bindings/v8/SerializedScriptValue.cpp:
3348         * bindings/v8/V8Binding.h:
3349         (WebCore::V8ValueTraits::arrayV8Value):
3350         * bindings/v8/V8Collection.h:
3351         (WebCore::getV8Object):
3352         (WebCore::getNamedPropertyOfCollection):
3353         (WebCore::collectionNamedPropertyGetter):
3354         (WebCore::getIndexedPropertyOfCollection):
3355         (WebCore::collectionIndexedPropertyGetter):
3356         * bindings/v8/V8DOMWindowShell.cpp:
3357         (WebCore::getter):
3358         * bindings/v8/V8DOMWrapper.cpp:
3359         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
3360         * bindings/v8/V8DOMWrapper.h:
3361         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
3362         (V8DOMWrapper):
3363         * bindings/v8/V8ThrowException.cpp:
3364         (WebCore):
3365         * bindings/v8/custom/V8BlobCustom.cpp:
3366         (WebCore::toV8):
3367         (WebCore::V8Blob::constructorCallback):
3368         * bindings/v8/custom/V8CSSRuleCustom.cpp:
3369         (WebCore::toV8):
3370         * bindings/v8/custom/V8CSSValueCustom.cpp:
3371         (WebCore::toV8):
3372         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
3373         (WebCore::toV8Object):
3374         (WebCore::V8CanvasRenderingContext2D::strokeStyleAccessorGetter):
3375         (WebCore::V8CanvasRenderingContext2D::fillStyleAccessorGetter):
3376         * bindings/v8/custom/V8ConsoleCustom.cpp:
3377         (WebCore::V8Console::memoryAccessorGetter):
3378         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3379         (WebCore::V8DOMWindow::openCallback):
3380         (WebCore::V8DOMWindow::indexedPropertyGetter):
3381         (WebCore::V8DOMWindow::namedPropertyGetter):
3382         (WebCore::toV8):
3383         * bindings/v8/custom/V8DataViewCustom.cpp:
3384         (WebCore::toV8):
3385         * bindings/v8/custom/V8DocumentCustom.cpp:
3386         (WebCore::V8Document::evaluateCallback):
3387         (WebCore::V8Document::getCSSCanvasContextCallback):
3388         (WebCore::toV8):
3389         (WebCore::V8Document::createTouchListCallback):
3390         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
3391         (WebCore::V8Document::locationAccessorGetter):
3392         * bindings/v8/custom/V8EntryCustom.cpp:
3393         (WebCore::toV8):
3394         * bindings/v8/custom/V8EntrySyncCustom.cpp:
3395         (WebCore::toV8):
3396         * bindings/v8/custom/V8EventCustom.cpp:
3397         (WebCore::V8Event::dataTransferAccessorGetter):
3398         (WebCore::V8Event::clipboardDataAccessorGetter):
3399         (WebCore::toV8):
3400         * bindings/v8/custom/V8FileReaderCustom.cpp:
3401         (WebCore::V8FileReader::resultAccessorGetter):
3402         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
3403         (WebCore::getNamedItems):
3404         (WebCore::getItem):
3405         (WebCore::V8HTMLAllCollection::namedPropertyGetter):
3406         (WebCore::V8HTMLAllCollection::itemCallback):
3407         (WebCore::V8HTMLAllCollection::namedItemCallback):
3408         (WebCore::V8HTMLAllCollection::callAsFunctionCallback):
3409         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
3410         (WebCore::V8HTMLCanvasElement::getContextCallback):
3411         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
3412         (WebCore::getNamedItems):
3413         (WebCore::V8HTMLCollection::namedPropertyGetter):
3414         (WebCore::V8HTMLCollection::namedItemCallback):
3415         (WebCore::toV8):
3416         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
3417         (WebCore::V8HTMLDocument::getNamedProperty):
3418         (WebCore::V8HTMLDocument::allAccessorGetter):
3419         (WebCore::toV8):
3420         * bindings/v8/custom/V8HTMLElementCustom.cpp:
3421         (WebCore::toV8):
3422         (WebCore::V8HTMLElement::itemValueAccessorGetter):
3423         * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
3424         (WebCore::V8HTMLFormElement::indexedPropertyGetter):
3425         (WebCore::V8HTMLFormElement::namedPropertyGetter):
3426         * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
3427         (WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
3428         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
3429         (WebCore::v8HTMLImageElementConstructorCallback):
3430         * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
3431         (WebCore::V8HTMLLinkElement::sizesAccessorGetter):
3432         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
3433         (WebCore::V8HTMLOptionsCollection::indexedPropertyGetter):
3434         * bindings/v8/custom/V8HTMLOutputElementCustom.cpp:
3435         (WebCore::V8HTMLOutputElement::htmlForAccessorGetter):
3436         * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
3437         (WebCore::V8HTMLSelectElement::indexedPropertyGetter):
3438         * bindings/v8/custom/V8IDBAnyCustom.cpp:
3439         (WebCore::toV8):
3440         * bindings/v8/custom/V8IDBKeyCustom.cpp:
3441         (WebCore::toV8):
3442         * bindings/v8/custom/V8ImageDataCustom.cpp:
3443         (WebCore::toV8):
3444         * bindings/v8/custom/V8LocationCustom.cpp:
3445         (WebCore::toV8):
3446         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
3447         (WebCore::V8MessageChannel::constructorCallback):
3448         * bindings/v8/custom/V8MessageEventCustom.cpp:
3449         (WebCore::V8MessageEvent::dataAccessorGetter):
3450         (WebCore::V8MessageEvent::portsAccessorGetter):
3451         * bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
3452         (WebCore::toV8):
3453         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3454         (WebCore::V8NamedNodeMap::indexedPropertyGetter):
3455         (WebCore::V8NamedNodeMap::namedPropertyGetter):
3456         * bindings/v8/custom/V8NodeCustom.cpp:
3457         (WebCore::toV8Slow):
3458         * bindings/v8/custom/V8NodeListCustom.cpp:
3459         (WebCore::V8NodeList::namedPropertyGetter):
3460         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
3461         (WebCore::V8NotificationCenter::createHTMLNotificationCallback):
3462         (WebCore::V8NotificationCenter::createNotificationCallback):
3463         * bindings/v8/custom/V8PerformanceCustom.cpp:
3464         (WebCore::V8Performance::memoryAccessorGetter):
3465         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
3466         (WebCore::toV8):
3467         * bindings/v8/custom/V8PopStateEventCustom.cpp:
3468         (WebCore::V8PopStateEvent::stateAccessorGetter):
3469         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
3470         (WebCore::V8SQLTransactionSync::executeSqlCallback):
3471         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
3472         (WebCore::toV8):
3473         * bindings/v8/custom/V8SVGElementCustom.cpp:
3474         (WebCore::toV8):
3475         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
3476         (WebCore::toV8):
3477         * bindings/v8/custom/V8ScriptProfileCustom.cpp:
3478         (WebCore::toV8):
3479         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
3480         (WebCore::toV8):
3481         * bindings/v8/custom/V8StyleSheetCustom.cpp:
3482         (WebCore::toV8):
3483         * bindings/v8/custom/V8StyleSheetListCustom.cpp:
3484         (WebCore::V8StyleSheetList::namedPropertyGetter):
3485         * bindings/v8/custom/V8TrackEventCustom.cpp:
3486         (WebCore::V8TrackEvent::trackAccessorGetter):
3487         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
3488         (WebCore::toV8Object):
3489         (WebCore::getObjectParameter):
3490         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
3491         (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
3492         (WebCore::V8WebGLRenderingContext::getParameterCallback):
3493         (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
3494         (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
3495         (WebCore::V8WebGLRenderingContext::getUniformCallback):
3496         * bindings/v8/custom/V8WorkerContextCustom.cpp:
3497         (WebCore::toV8):
3498         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
3499         (WebCore::V8XMLHttpRequest::responseAccessorGetter):
3500         * dom/make_names.pl:
3501         (printWrapperFunctions):
3502         (printWrapperFactoryCppFile):
3503         (printWrapperFactoryHeaderFile):
3504
3505 2012-09-07  John Bauman  <jbauman@chromium.org>
3506
3507         Check objects for null when recreating context
3508         https://bugs.webkit.org/show_bug.cgi?id=95926
3509
3510         Reviewed by Dean Jackson.
3511
3512         Upon navigation the FrameViwe and other objects may go null, so detect
3513         that and return rather than try to dereference them.
3514
3515         * html/canvas/WebGLRenderingContext.cpp:
3516         (WebCore):
3517         (WebCore::WebGLRenderingContext::maybeRestoreContext):
3518
3519 2012-09-07  Simon Fraser  <simon.fraser@apple.com>
3520
3521         box-shadow causes overlay scrollbars to be in the wrong position when element is composited
3522         https://bugs.webkit.org/show_bug.cgi?id=85647
3523
3524         Reviewed by James Robinson.
3525
3526         The code that positioned the GraphicsLayers for scrollbars failed to take
3527         into account any offset between the origin of the compositing layer,
3528         and the renderer. This caused scrollbar layers to be misplaced or hidden
3529         on layers with, for example, box-shadows.
3530         
3531         Also moved the code that positions the scrollbar layers into RendderLayerBacking,
3532         since this is where all the rest of the GraphicsLayer-positioning code lives.
3533         
3534         Renamed an "offsetFromLayer" param to "offsetFromRoot" which is more accurate.
3535
3536         Manual test, since overlay scrollbars are not enabled in DRT/WTR:
3537             ManualTests/scrollbars/scrollbars-in-composited-layers.html
3538
3539         * rendering/RenderLayer.cpp:
3540         (WebCore::RenderLayer::positionOverflowControls):
3541         * rendering/RenderLayerBacking.cpp:
3542         (WebCore::RenderLayerBacking::positionOverflowControlsLayers):
3543         * rendering/RenderLayerBacking.h:
3544         (RenderLayerBacking):
3545
3546 2012-09-07  David Reveman  <reveman@chromium.org>
3547
3548         [Chromium] Multiple commits without invalidation allowed per redraw.
3549         https://bugs.webkit.org/show_bug.cgi?id=95661
3550
3551         Reviewed by James Robinson.
3552
3553         Always enter COMMIT_STATE_WAITING_FOR_FIRST_DRAW after commit. This
3554         ensures we draw before beginning a new frame.
3555
3556         Unit tests: CCLayerTreeHostTestContinuousCommit.runMultiThread
3557                     CCLayerTreeHostTestContinuousInvalidate.runMultiThread
3558                     CCLayerTreeHostTestContinuousAnimate.runMultiThread
3559
3560         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
3561         (WebCore::CCSchedulerStateMachine::updateState):
3562
3563 2012-09-07  Tony Chang  <tony@chromium.org>
3564
3565         Add OVERRIDE to computeLogical{Width,Height} overrides
3566         https://bugs.webkit.org/show_bug.cgi?id=96153
3567
3568         Reviewed by Ojan Vafai.
3569
3570         I plan on renaming these functions to updateLogical{Width,Height} and
3571         I want to be extra sure that I don't mess up.
3572
3573         No new tests, this is just a refactoring.
3574
3575         * rendering/RenderFlowThread.h: Also mark the functions virtual!
3576         * rendering/RenderListBox.h:
3577         (RenderListBox):
3578         * rendering/RenderMeter.h:
3579         (RenderMeter):
3580         * rendering/RenderTable.h:
3581         (RenderTable):
3582         * rendering/RenderTableCell.h:
3583         (RenderTableCell):
3584         * rendering/RenderTextControl.h:
3585         (RenderTextControl):
3586         * rendering/svg/RenderSVGForeignObject.h:
3587         (RenderSVGForeignObject):
3588
3589 2012-09-07  Dominic Mazzoni  <dmazzoni@google.com>
3590
3591         AX: WebCore accessibility roles should be cross-platform
3592         https://bugs.webkit.org/show_bug.cgi?id=94870
3593
3594         Reviewed by Chris Fleizach.
3595
3596         Make 5 accessibility roles cross-platform rather than GTK-only.
3597
3598         Instead of mapping the HR tag to SplitterRole (which is an interactive
3599         splitter control on Mac), create a new role HorizontalRuleRole.
3600
3601         Map all of the new roles to AXGroup on Mac, which matches the existing
3602         behavior. Add a new test for these roles on Chromium.
3603
3604         Test: platform/chromium/accessibility/chromium-only-roles.html
3605
3606         * accessibility/AccessibilityObject.cpp:
3607         (WebCore::AccessibilityObject::supportsARIAAttributes):
3608         * accessibility/AccessibilityObject.h:
3609         * accessibility/AccessibilityRenderObject.cpp:
3610         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
3611         * accessibility/gtk/AccessibilityObjectAtk.cpp:
3612         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3613         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
3614         (atkRole):
3615         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
3616         (createAccessibilityRoleMap):
3617
3618 2012-09-07  Simon Hausmann  <simon.hausmann@nokia.com>
3619
3620         Fix build of GraphicsContext3DOpenGLCommon.cpp with MSVC
3621         https://bugs.webkit.org/show_bug.cgi?id=96120
3622
3623         Reviewed by Noam Rosenthal.
3624
3625         Variable stack arrays are a GCC extension. Replace their use with OwnArrayPtr, similar to
3626         other functions in the same file.
3627
3628         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
3629         (WebCore::GraphicsContext3D::getActiveAttrib):
3630
3631 2012-09-07  Emil A Eklund  <eae@chromium.org>
3632
3633         Prevent overflows in FractionalLayoutUnit
3634         https://bugs.webkit.org/show_bug.cgi?id=95883
3635
3636         Reviewed by Eric Seidel.
3637
3638         Avoid overflow in snapSizeToPixel by using the fraction of the
3639         location instead of the full value.
3640         
3641         Add safe versions of min/max, adjusted by half a pixel to allow
3642         round to allow rounding without overflowing.
3643         
3644         Avoid overflow when snapping a FractionalLayoutRect by using the
3645         safe versions of min/max in infiniteRect.
3646         
3647         Avoid overflow when converting from a Length to a LayoutUnit by
3648         limiting the value to FractionalLayoutUnit min/max. This matches
3649         the behavior of the non-subpixel code path where the values are
3650         similarly limited.
3651
3652         Test: fast/sub-pixel/large-sizes.html
3653
3654         * css/CSSPrimitiveValue.cpp:
3655         (WebCore::CSSPrimitiveValue::computeLength):
3656         Limit to FractionalLayoutUnit min/max.
3657         
3658         * platform/FractionalLayoutUnit.h:
3659         (FractionalLayoutUnit):
3660         (WebCore::FractionalLayoutUnit::nearlyMax):
3661         (WebCore::FractionalLayoutUnit::nearlyMin):
3662         Reduce max/increase min by 1/2 to allow round to operate
3663         without overflowing.
3664
3665         (WebCore::snapSizeToPixel):
3666         * platform/graphics/FractionalLayoutRect.h:
3667         (WebCore::FractionalLayoutRect::infiniteRect):
3668         Use nearlyMin/nearlyMax.
3669         
3670         (WebCore::pixelSnappedIntRect):
3671         Change pixelSnappedIntRect to use snapSizeToPixel.
3672
3673 2012-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
3674
3675         Unreviewed, rolling out r127920 and r127926.
3676         http://trac.webkit.org/changeset/127920
3677         http://trac.webkit.org/changeset/127926
3678         https://bugs.webkit.org/show_bug.cgi?id=96152
3679
3680         billions and billions of assertion failures on mac debug
3681         builds (Requested by thorton on #webkit).
3682
3683         * WebCore.exp.in:
3684         * css/CSSFontFaceSource.cpp:
3685         (WebCore::CSSFontFaceSource::getFontData):
3686         * css/CSSSegmentedFontFace.cpp:
3687         (WebCore::CSSSegmentedFontFace::getFontData):
3688         * dom/Document.cpp:
3689         (WebCore::Document::~Document):
3690         (WebCore::Document::registerCustomFont):
3691         (WebCore):
3692         (WebCore::Document::deleteCustomFonts):
3693         (WebCore::Document::reportMemoryUsage):
3694         * dom/Document.h:
3695         (WebCore):
3696         (Document):
3697         * platform/graphics/FontData.h:
3698         * platform/graphics/FontFallbackList.cpp:
3699         (WebCore::FontFallbackList::releaseFontData):
3700         (WebCore::FontFallbackList::fontDataAt):
3701         (WebCore::FontFallbackList::setPlatformFont):
3702         * platform/graphics/FontFallbackList.h:
3703         (FontFallbackList):
3704         (WebCore::FontFallbackList::setGlyphPageZero):
3705         (WebCore::FontFallbackList::setGlyphPages):
3706         * platform/graphics/GlyphPageTreeNode.cpp:
3707         (WebCore::GlyphPageTreeNode::pruneFontData):
3708
3709 2012-09-07  Arvid Nilsson  <anilsson@rim.com>
3710
3711         [CSS Shaders] WebKitCSSMixFunctionValue.h needs forward declaration of MemoryObjectInfo
3712         https://bugs.webkit.org/show_bug.cgi?id=96150
3713
3714         Reviewed by George Staikos.
3715
3716         Otherwise files that include it may fail to compile.
3717
3718         No new tests, because this patch implements no new functionality.
3719
3720         * css/WebKitCSSMixFunctionValue.h:
3721         (WebCore):
3722
3723 2012-09-07  Stephen Chenney  <schenney@chromium.org>
3724
3725         Mac build fix.
3726         https://bugs.webkit.org/show_bug.cgi?id=93640
3727
3728         Reviewed by Abhishek Arya.
3729
3730         The original patch for this bug broke the mac builds.
3731
3732         * WebCore.exp.in: Adding const marker
3733
3734 2012-09-07  Robert Kroeger  <rjkroege@chromium.org>
3735
3736         [chromium] Add touchscreen specific fling curve parametrization
3737         https://bugs.webkit.org/show_bug.cgi?id=95997
3738
3739         Reviewed by James Robinson.
3740
3741         Added a new set of fling curve parameters with a good feel for touchscreen
3742         initiated flings. Renamed TouchpadFlingPlatformGestureCurve to
3743         TouchFlingPlatformGestureCurve to better reflect that the class
3744         can serve for both touchscreen and touchpad flings when appropriately
3745         parametrized. Updated build files as necessary for the rename.
3746
3747         No new tests - existing tests apply.
3748
3749         * CMakeLists.txt:
3750         * GNUmakefile.list.am:
3751         * WebCore.gypi:
3752         * platform/ScrollAnimatorNone.cpp:
3753         (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
3754         * platform/TouchFlingPlatformGestureCurve.cpp: Renamed from Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.cpp.
3755         (WebCore):
3756         (WebCore::TouchFlingPlatformGestureCurve::createForTouchPad):
3757         (WebCore::TouchFlingPlatformGestureCurve::createForTouchScreen):
3758         Added with touchscreen parameters.
3759         (WebCore::TouchFlingPlatformGestureCurve::create):
3760         (WebCore::position):
3761         (WebCore::velocity):
3762         (WebCore::TouchFlingPlatformGestureCurve::TouchFlingPlatformGestureCurve):
3763         (WebCore::TouchFlingPlatformGestureCurve::~TouchFlingPlatformGestureCurve):
3764         (WebCore::TouchFlingPlatformGestureCurve::debugName):
3765         (WebCore::TouchFlingPlatformGestureCurve::apply):
3766         * platform/TouchFlingPlatformGestureCurve.h: Renamed from Source/WebCore/platform/TouchpadFlingPlatformGestureCurve.h.
3767         (WebCore):
3768         (TouchFlingPlatformGestureCurve):
3769         * platform/chromium/support/PlatformGestureCurveFactory.cpp: invokes
3770         createForTouchPad or createForTouchScreen as appropriate.
3771         (WebKit::PlatformGestureCurveFactory::createCurve):
3772
3773 2012-09-07  Adam Barth  <abarth@chromium.org>
3774
3775         Enter the creationContext before creating DOM wrappers
3776         https://bugs.webkit.org/show_bug.cgi?id=96044
3777
3778         Reviewed by Eric Seidel.
3779
3780         Now that we have the creationContext available when instantiating DOM
3781         wrappers, we should use it! After this patch, we enter the creation
3782         context so that the DOM wrapper is created in the right context (and
3783         therefore has the right prototype chain).
3784
3785         This patch would have been tested by
3786         fast/dom/prototype-inheritance.html, but that test was removed because
3787         it was too much work to maintain. I'll post what the diff would have
3788         been to the results for that test as an attachment to this bug.
3789
3790         Note: After this patch there are a number of cleanup patches to write,
3791         but I'll do those separately.
3792
3793         * bindings/js/JSGeolocationCustom.cpp:
3794         (WebCore::JSGeolocation::getCurrentPosition):
3795         (WebCore::JSGeolocation::watchPosition):
3796           - This patch also includes a minor bug fix to the JSC implementations
3797             of Geolocation and Notifications. Previously, JSC was using the
3798             current lexical context for the callback object, which makes very
3799             little sense as it neither cooresponds to the Geolocation (or
3800             Notification) object or the functions being used for the callback.
3801
3802             To be consistent with how we do callbacks elsewhere in WebKit, we
3803             should use the context that corresponds to the Geolocation (or
3804             Notification) object. This change happened automatically for V8
3805             when this patch fixed the Geolocation (and Notifications) wrapper
3806             to use the right context, but for JSC we need to change these lines
3807             of code explicitly.
3808         * bindings/scripts/CodeGeneratorV8.pm:
3809         (GenerateToV8Converters):
3810
3811 2012-09-07  Leo Yang  <leoyang@rim.com>
3812
3813         Appcache fallback URL match should use the longest candidate
3814         https://bugs.webkit.org/show_bug.cgi?id=96126
3815
3816         Reviewed by Alexey Proskuryakov.
3817
3818         Test: http/tests/appcache/multi-fallback.html
3819
3820         * loader/appcache/ApplicationCache.cpp:
3821         (WebCore::fallbackURLLongerThan):
3822         (WebCore::ApplicationCache::setFallbackURLs):
3823
3824 2012-09-07  Stephen Chenney  <schenney@chromium.org>
3825
3826         Font data is purged while fonts are still using it
3827         https://bugs.webkit.org/show_bug.cgi?id=93640
3828
3829         Reviewed by Eric Seidel.
3830
3831         Move the handling of custom font pruning from Document to FontFallbackList.
3832         The previous inplementation allowed fonts to be removed before all their
3833         clients were done. This change moves handling of custom font purging to the
3834         FontFallbackList class, which is the shared object that is only removed
3835         when all clients of a font are done with it. This fixes a crash in Angry
3836         Birds due to a seamless iframe and some failing tests in fast/frames/seamless.
3837
3838         The specific element that causes problems is:
3839         <iframe id="ingame_frame0" name="ingame_frame0" frameborder="0" seamless="true"
3840           src="http://chrome.angrybirds.com/ingame_graphic.html"
3841           onload="this.style.opacity = 1; parent.adLoaded();" scrolling="no"
3842           style="opacity: 1; -webkit-transition: opacity 1s ease-in-out 0s;
3843           position: absolute; border: 0px; width: 312px; height: 320px; z-index:
3844           300; overflow: hidden; visibility: visible;"></iframe>
3845         The source document uses the same font as the embedding document.
3846
3847         Tests: fast/frames/seamless/seamless-custom-font-pruning-crash.html
3848                fast/frames/seamless/seamless-nested-crash.html
3849
3850         * css/CSSFontFaceSource.cpp:
3851         (WebCore::CSSFontFaceSource::getFontData): Remove code to register the
3852         font with the document.
3853         * css/CSSSegmentedFontFace.cpp:
3854         (WebCore::CSSSegmentedFontFace::getFontData): Remove code to register
3855         the font with the document.
3856         * dom/Document.cpp:
3857         (WebCore::Document::~Document): Remove code that records and purges
3858         custom fonts.
3859         (WebCore):
3860         (WebCore::Document::reportMemoryUsage): Remove reference to removed
3861         object.
3862         * dom/Document.h:
3863         (Document): Remove method declarations for custom font handling.
3864         * platform/graphics/FontData.h: Add RefCounted to FontData. Previously, FontData
3865         for custom fonts was owned by a Vector<OwnPtr<FontData>> in Document. Now it
3866         is owned by FontFallbackList, and ref counting is required. A future patch will
3867         add RefPtr code for all FontData use cases.
3868         * platform/graphics/FontFallbackList.cpp:
3869         (WebCore): Add global custom font data cache, which owns the FontData pointers
3870         used as keys.
3871         (WebCore::FontFallbackList::appendFontData): Helper method increments
3872         the ref count on custom FontData.
3873         (WebCore::FontFallbackList::releaseFontData): Helper method decrements
3874         the ref count on custom FontData.
3875         (WebCore::FontFallbackList::fontDataAt): Add calls to register the
3876         FontFallbackList as a client of custom fonts.
3877         * platform/graphics/FontFallbackList.h:
3878         (WebCore::FontFallbackList::setGlyphPageZero): Moved this declaration.
3879         (WebCore::FontFallbackList::setGlyphPages): Moved this declaration.
3880         (FontFallbackList):
3881         * platform/graphics/GlyphPageTreeNode.cpp:
3882         (WebCore::GlyphPageTreeNode::pruneFontData): Removed unnecessary null check.
3883
3884 2012-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
3885
3886         Unreviewed, rolling out r127911.
3887         http://trac.webkit.org/changeset/127911
3888         https://bugs.webkit.org/show_bug.cgi?id=96146
3889
3890         Patch breaks build with clang (Requested by rbuis on #webkit).
3891
3892         * GNUmakefile.list.am:
3893         * Target.pri:
3894         * WebCore.gypi:
3895         * WebCore.vcproj/WebCore.vcproj:
3896         * WebCore.xcodeproj/project.pbxproj:
3897         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
3898         (WebCore::CustomFilterGlobalContext::getValidatedProgram):
3899         * platform/graphics/filters/CustomFilterMesh.cpp:
3900         (WebCore):
3901         (MeshGenerator):
3902         (WebCore::MeshGenerator::MeshGenerator):
3903         (WebCore::MeshGenerator::vertices):
3904         (WebCore::MeshGenerator::indices):
3905         (WebCore::MeshGenerator::points):
3906         (WebCore::MeshGenerator::pointsCount):
3907         (WebCore::MeshGenerator::tiles):
3908         (WebCore::MeshGenerator::tilesCount):
3909         (WebCore::MeshGenerator::indicesCount):
3910         (WebCore::MeshGenerator::floatsPerVertex):
3911         (WebCore::MeshGenerator::verticesCount):
3912         (WebCore::MeshGenerator::addTile):
3913         (WebCore::MeshGenerator::addAttachedMeshIndex):
3914         (WebCore::MeshGenerator::generateAttachedMesh):
3915         (WebCore::MeshGenerator::addDetachedMeshVertexAndIndex):
3916         (WebCore::MeshGenerator::generateDetachedMesh):
3917         (WebCore::MeshGenerator::addPositionAttribute):
3918         (WebCore::MeshGenerator::addTexCoordAttribute):
3919         (WebCore::MeshGenerator::addMeshCoordAttribute):
3920         (WebCore::MeshGenerator::addTriangleCoordAttribute):
3921         (WebCore::MeshGenerator::addAttachedMeshVertexAttributes):
3922         (WebCore::MeshGenerator::addDetachedMeshVertexAttributes):
3923         (WebCore::MeshGenerator::dumpBuffers):
3924         (WebCore::CustomFilterMesh::CustomFilterMesh):
3925         * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Removed.
3926         * platform/graphics/filters/CustomFilterMeshGenerator.h: Removed.
3927         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
3928         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
3929         (WebCore::CustomFilterValidatedProgram::compiledProgram):
3930         (WebCore::CustomFilterValidatedProgram::~CustomFilterValidatedProgram):
3931         * platform/graphics/filters/CustomFilterValidatedProgram.h:
3932         (CustomFilterValidatedProgram):
3933         * platform/graphics/filters/blackberry/CustomFilterValidatedProgramBlackBerry.cpp: Removed.
3934
3935 2012-09-07  Ojan Vafai  <ojan@chromium.org>
3936
3937         Fix RenderBox::availableHeight to subtract scrollbars in the right places
3938         https://bugs.webkit.org/show_bug.cgi?id=96031
3939
3940         Reviewed by Tony Chang.
3941
3942         This matches Firefox 15 and IE9 rendering for the two new tests.
3943
3944         Tests: fast/block/positioning/percent-top-left-on-relative-position.html
3945                fast/css/nested-percent-height-on-replaced.html
3946
3947         * rendering/RenderBox.cpp:
3948         (WebCore::RenderBox::computePercentageLogicalHeight):
3949         Subtract scrollbars when recurring on percentage heights.
3950         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
3951         This is the wrong place to subtract scrollbars. availableLogicalHeight
3952         should return a value that doesn't include scrollbars.
3953         (WebCore::RenderBox::availableLogicalHeightUsing):
3954         Subtract scrollbars from specified heights. Also, consolidate the code to
3955         use computeContentLogicalHeightUsing. This makes percentage heights use
3956         the right containingBlock in quirks mode and makes viewport percentage heights work.
3957
3958 2012-09-07  Tony Chang  <tony@chromium.org>
3959
3960         Make RenderBox::computeLogicalWidthInRegion const
3961         https://bugs.webkit.org/show_bug.cgi?id=96129
3962
3963         Reviewed by Ojan Vafai.
3964
3965         Making computeLogicalWidthInRegion const allows us to get rid of the gross hack in
3966         RenderBox::renderBoxRegionInfo.
3967
3968         No new tests, this is covered by existing layout tests.
3969
3970         * rendering/RenderBox.cpp:
3971         (WebCore::RenderBox::constrainLogicalWidthInRegionByMinMax): Make const.
3972         (WebCore::RenderBox::shrinkLogicalWidthToAvoidFloats): Make const.
3973         (WebCore::RenderBox::computeLogicalWidth): Use a LogicalExtentComputedValues when calling computeLogicalWidthInRegion.
3974         (WebCore::RenderBox::computeLogicalWidthInRegion): Make const. Fill in a LogicalExtentComputedValues struct instead.
3975         (WebCore::RenderBox::computeLogicalWidthInRegionUsing): Make const.
3976         (WebCore::RenderBox::renderBoxRegionInfo): Remove hack and get region width values in a LogicalExtentComputedValues struct.
3977         * rendering/RenderBox.h:
3978         (RenderBox):
3979
3980 2012-09-07  Dana Jansens  <danakj@chromium.org>
3981
3982         [chromium] Remove bad assert in CCRenderPass::Id
3983         https://bugs.webkit.org/show_bug.cgi?id=96138
3984
3985         Reviewed by James Robinson.
3986
3987         The assert prevents HashMap from creating "deleted" and "empty" ids. We
3988         assert that RenderPasses have correct ids already, and don't need to
3989         assert inside the Id structure itself.
3990
3991         * platform/graphics/chromium/cc/CCRenderPass.h:
3992         (WebCore::CCRenderPass::Id::Id):
3993
3994 2012-09-07  Arvid Nilsson  <anilsson@rim.com>
3995
3996         [CSS Shaders] [BlackBerry] Refactor CustomFilterMesh and CustomFilter*Program
3997         https://bugs.webkit.org/show_bug.cgi?id=94725
3998
3999         Reviewed by Rob Buis.
4000
4001         Separate the MeshGenerator from the CustomFilterMesh into
4002         CustomFilterMeshGenerator.h/cpp. This allows the BlackBerry port to
4003         reuse the mesh generator in its accelerated compositing implementation.
4004
4005         Also add support for creating a "PlatformCompiledProgram" from a
4006         CustomFilterValidatedProgram, so the BlackBerry port can reuse the
4007         shader validation code in its accelerated compositing implementation.
4008
4009         It turns out the GraphicsContext3D is not needed for ANGLE to function,
4010         so this patch removes an ASSERT that required a context before
4011         validating the shaders using ANGLE. This allows the BlackBerry port to
4012         reuse the validation code without triggering the assert. In the future,
4013         the validation code could be moved to a separate class to make it more
4014         obvious that it isn't really related to GraphicsContext3D.
4015
4016         In general, this refactoring can be useful for any port that uses
4017         OpenGL to implement accelerated compositing.
4018
4019         Inspired by an original patch by Joshua Netterfield.
4020
4021         No new tests, because this patch implements no new functionality.
4022
4023         * GNUmakefile.list.am:
4024         * Target.pri:
4025         * WebCore.gypi:
4026         * WebCore.vcproj/WebCore.vcproj:
4027         * WebCore.xcodeproj/project.pbxproj:
4028         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
4029         (WebCore::CustomFilterGlobalContext::getValidatedProgram):
4030         * platform/graphics/filters/CustomFilterMesh.cpp:
4031         (WebCore::CustomFilterMesh::CustomFilterMesh):
4032         * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Added.
4033         (WebCore):