9ea14c4ffe9f4ac1bf638d456604d7792729dff2
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-11-19  Nate Chapin  <japhet@chromium.org>
2
3         Move empty loading to DocumentLoader, simplify FrameLoader::init()
4         https://bugs.webkit.org/show_bug.cgi?id=101512
5
6         Reviewed by Adam Barth.
7
8         No new tests, though several outputs changed because we no longer send resource
9             load callbacks for empty loads.
10
11         * loader/DocumentLoader.cpp:
12         (WebCore::DocumentLoader::DocumentLoader):
13         (WebCore::DocumentLoader::~DocumentLoader):
14         (WebCore::DocumentLoader::finishedLoading):
15         (WebCore::DocumentLoader::clearMainResourceLoader):
16         (WebCore::DocumentLoader::isLoadingInAPISense):
17         (WebCore::DocumentLoader::isLoadingMainResource):
18         (WebCore::DocumentLoader::maybeLoadEmpty):
19         (WebCore):
20         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
21              loads directly here.
22         * loader/DocumentLoader.h:
23         (DocumentLoader):
24         * loader/FrameLoader.cpp:
25         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
26             were previously being reset in init(). Given that the FrameLoader is in
27             an inconsistent state before init() is called anyway, there doesn't seem
28             to be a disadvantage to just initializing them to their post-init() values.
29         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
30             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
31         * loader/FrameLoaderStateMachine.cpp:
32         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
33         * loader/FrameLoaderStateMachine.h:
34         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
35         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
36             load got deferred, which won't happen now. Return void and always treat
37             as returning false.
38         * loader/MainResourceLoader.h:
39         (MainResourceLoader):
40
41 2012-11-19  Erik Arvidsson  <arv@chromium.org>
42
43         Update DOMException name: TimeoutError
44         https://bugs.webkit.org/show_bug.cgi?id=102513
45
46         Reviewed by Kentaro Hara.
47
48         Patch 23 of 25 to update DOMException name to match the spec and Firefox.
49
50         No code uses DOMException TimeoutError. We do use TIMEOUT_ERR for XMLHttpRequestException. See bug 102506.
51
52         * dom/DOMCoreException.cpp:
53
54 2012-11-19  Erik Arvidsson  <arv@chromium.org>
55
56         Update DOMException name: DataCloneError
57         https://bugs.webkit.org/show_bug.cgi?id=102521
58
59         Reviewed by Kentaro Hara.
60
61         Patch 25 of 25 to update DOMException name to match the spec and Firefox.
62
63         Updated existing tests.
64
65         * dom/DOMCoreException.cpp:
66
67 2012-11-19  Tom Hudson  <tomhudson@chromium.org>
68
69         Improve performance of RenderBoxModelObject::paintTranslucentBorderSides()
70         https://bugs.webkit.org/show_bug.cgi?id=98660
71
72         Reviewed by Simon Fraser.
73
74         Accumulate edges[i].shouldRender() in a flag field and pass that to paintBorderSides()
75         and paintTranslucentBorderSides() so that we don't do unnecessary work.
76
77         If we can avoid setting up and tearing down an unnecessary transparent layer we save
78         30ms on some mobile platforms.
79
80         * rendering/RenderBoxModelObject.h:
81         * rendering/RenderBoxModelObject.cpp:
82         (WebCore::RenderBoxModelObject::paintBorder):
83         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
84
85 2012-11-19  Hans Muller  <hmuller@adobe.com>
86
87         [CSS Exclusions] remove null exclusion shape check from ExclusionShape::createExclusionShape
88         https://bugs.webkit.org/show_bug.cgi?id=100765
89
90         Reviewed by Dirk Schulze.
91
92         ExclusionShape::createExclusionShape now ASSERTs that its basicShape argument
93         isn't null, since the caller is expected to ensure as much.  No new tests were
94         needed since this is a near-trivial cleanup.
95
96         * rendering/ExclusionShape.cpp:
97         (WebCore::ExclusionShape::createExclusionShape): This method no longer defends against a null basicShape argument by returning null.
98
99 2012-11-19  Sami Kyostila  <skyostil@chromium.org>
100
101         Use device scale factor instead of physical screen DPI for screen DPI
102         https://bugs.webkit.org/show_bug.cgi?id=101769
103
104         Reviewed by Adam Barth.
105
106         Media queries call WebCore::Screen::{horizontal,vertical}DPI() to determine
107         the dots per CSS inch[1] value for the "screen" media type. On Chromium these
108         functions currently return the physical screen DPI, which is wrong. To fix
109         this, we remove both of these functions entirely and make media queries use
110         the device scale factor multiplied by 96 on all ports.
111
112         [1] http://www.w3.org/TR/css3-mediaqueries/#resolution0
113
114         * page/Screen.cpp:
115         (WebCore::Screen::horizontalDPI):
116         (WebCore::Screen::verticalDPI):
117         * platform/PlatformScreen.h:
118         (WebCore):
119         * platform/blackberry/PlatformScreenBlackBerry.cpp:
120         * platform/chromium/PlatformScreenChromium.cpp:
121         * platform/efl/PlatformScreenEfl.cpp:
122         * platform/gtk/PlatformScreenGtk.cpp:
123         * platform/mac/PlatformScreenMac.mm:
124         * platform/qt/PlatformScreenQt.cpp:
125         * platform/win/PlatformScreenWin.cpp:
126         * platform/wx/ScreenWx.cpp:
127
128 2012-11-19  Julien Chaffraix  <jchaffraix@webkit.org>
129
130         Computed grid items' positions shouldn't be using Length
131         https://bugs.webkit.org/show_bug.cgi?id=102537
132
133         Reviewed by Tony Chang.
134
135         This change refactors how we store the grid items' position to use
136         a new type GridPosition. Length was a temporary type as it supported
137         'auto' | <integer> but it was starting to get more and more confusing
138         as we were implementing the layout routines.
139
140         No change in behavior.
141
142         * GNUmakefile.list.am:
143         * WebCore.gypi:
144         * WebCore.vcproj/WebCore.vcproj:
145         * WebCore.xcodeproj/project.pbxproj:
146         Added the new file to the build systems.
147
148         * rendering/style/RenderStyle.h:
149         Updated after the type change. Also made some getters
150         return a const reference instead of forcing a copy.
151
152         * rendering/style/StyleGridItemData.h:
153         (StyleGridItemData):
154         Ditto, also removed a comment about adding a new type.
155
156         * css/CSSComputedStyleDeclaration.cpp:
157         (WebCore::valueForGridPosition):
158         * css/StyleResolver.cpp:
159         (WebCore::createGridPosition):
160         (WebCore::StyleResolver::applyProperty):
161         * rendering/RenderGrid.cpp:
162         (WebCore::RenderGrid::resolveGridPosition):
163         Updated these sites after switching to GridPosition.
164
165         * rendering/RenderGrid.h:
166         Changed resolveGridPosition signature: it now takes a GridPosition.
167
168         * rendering/style/GridPosition.h: Added.
169         (WebCore::GridPosition::GridPosition):
170         Default constructor, creates an 'auto' position.
171
172         (WebCore::GridPosition::isPositive):
173         (WebCore::GridPosition::type):
174         (WebCore::GridPosition::isAuto):
175         (WebCore::GridPosition::setIntegerPosition):
176         (WebCore::GridPosition::integerPosition):
177         Helper functions.
178
179         (WebCore::GridPosition::operator==):
180         Required comparison operator for StyleGridItemData.
181
182 2012-11-19  Thiago Marcos P. Santos  <thiago.santos@intel.com>
183
184         Apply the resolved viewport rules
185         https://bugs.webkit.org/show_bug.cgi?id=95964
186
187         Reviewed by Kenneth Rohde Christiansen.
188
189         This patch implements the CSS Device Adaptation specification. The
190         WebKit implementation relies on the already implemented Viewport Meta
191         infrastructure to notify the browser of viewport changes.
192
193         The implementation was tests with success on the Qt and EFL ports, but
194         basically every port supporting Viewport Meta should be fine.
195
196         The usage of @-webkit-viewport inside media queries (more tests coming
197         to map all the corner cases) is currently limited when the media query
198         depends on the viewport dimensions itself. Defining the width and height
199         based on screen size will fail on ports reporting the screen
200         size as the size of the browser window instead of the device screen.
201
202         Tests: css3/device-adapt/opera/cascading-001.xhtml
203                css3/device-adapt/opera/cascading-002.xhtml
204                css3/device-adapt/opera/cascading-003.xhtml
205                css3/device-adapt/opera/cascading-004.xhtml
206                css3/device-adapt/opera/constrain-001.xhtml
207                css3/device-adapt/opera/constrain-002.xhtml
208                css3/device-adapt/opera/constrain-003.xhtml
209                css3/device-adapt/opera/constrain-004.xhtml
210                css3/device-adapt/opera/constrain-005.xhtml
211                css3/device-adapt/opera/constrain-006.xhtml
212                css3/device-adapt/opera/constrain-007.xhtml
213                css3/device-adapt/opera/constrain-008.xhtml
214                css3/device-adapt/opera/constrain-009.xhtml
215                css3/device-adapt/opera/constrain-010.xhtml
216                css3/device-adapt/opera/constrain-011.xhtml
217                css3/device-adapt/opera/constrain-012.xhtml
218                css3/device-adapt/opera/constrain-013.xhtml
219                css3/device-adapt/opera/constrain-014.xhtml
220                css3/device-adapt/opera/constrain-015.xhtml
221                css3/device-adapt/opera/constrain-016.xhtml
222                css3/device-adapt/opera/constrain-017.xhtml
223                css3/device-adapt/opera/constrain-020.xhtml
224                css3/device-adapt/opera/syntax-001.xhtml
225                css3/device-adapt/opera/syntax-002.xhtml
226                css3/device-adapt/opera/syntax-003.xhtml
227
228         * CMakeLists.txt:
229         * GNUmakefile.list.am:
230         * Target.pri:
231         * WebCore.gypi:
232         * WebCore.vcproj/WebCore.vcproj:
233         * WebCore.xcodeproj/project.pbxproj:
234         * css/CSSAllInOne.cpp:
235         * css/RuleSet.cpp:
236         (WebCore::RuleSet::addRulesFromSheet):
237         * css/StyleResolver.cpp:
238         (WebCore::StyleResolver::StyleResolver):
239         (WebCore::StyleResolver::appendAuthorStyleSheets):
240         (WebCore::StyleResolver::~StyleResolver):
241         * css/StyleResolver.h:
242         (StyleResolver):
243         (WebCore::StyleResolver::viewportStyleResolver):
244         * css/ViewportStyleResolver.cpp: Added.
245         (WebCore):
246         (WebCore::ViewportStyleResolver::ViewportStyleResolver):
247         (WebCore::ViewportStyleResolver::addViewportRule):
248         (WebCore::ViewportStyleResolver::clearDocument):
249         (WebCore::ViewportStyleResolver::resolve):
250         (WebCore::ViewportStyleResolver::getViewportArgumentValue):
251         * css/ViewportStyleResolver.h: Added.
252         (WebCore):
253         (ViewportStyleResolver):
254         (WebCore::ViewportStyleResolver::create):
255         * dom/Document.h:
256         (WebCore::Document::setViewportArguments):
257         * dom/ViewportArguments.cpp:
258         (WebCore::compareIgnoringAuto):
259         (WebCore):
260         (WebCore::ViewportArguments::resolve):
261         * dom/ViewportArguments.h:
262         (ViewportAttributes):
263         (WebCore::ViewportArguments::ViewportArguments):
264         (ViewportArguments):
265         (WebCore::ViewportArguments::operator==):
266
267 2012-11-19  Erik Arvidsson  <arv@chromium.org>
268
269         Update DOMException name: SecurityError
270         https://bugs.webkit.org/show_bug.cgi?id=102437
271
272         Reviewed by Kentaro Hara.
273
274         Patch 18 of 25 to update DOMException name to match the spec and Firefox.
275
276         Updated existing tests.
277
278         * dom/DOMCoreException.cpp:
279
280 2012-11-19  Erik Arvidsson  <arv@chromium.org>
281
282         Update DOMException name: URLMismatchError
283         https://bugs.webkit.org/show_bug.cgi?id=102511
284
285         Reviewed by Kentaro Hara.
286
287         Patch 21 of 25 to update DOMException name to match the spec and Firefox.
288
289         Updated existing tests.
290
291         * dom/DOMCoreException.cpp:
292         (WebCore):
293
294 2012-11-19  Kihong Kwon  <kihong.kwon@samsung.com>
295
296         Add PROXIMITY_EVENTS feature
297         https://bugs.webkit.org/show_bug.cgi?id=102658
298
299         Reviewed by Kentaro Hara.
300
301         Add PROXIMITY_EVENTS feature to xcode project for WebCorei and GNU make.
302
303         No new tests. Just add a new feature.
304
305         * Configurations/FeatureDefines.xcconfig:
306         * GNUmakefile.features.am:
307
308 2012-11-19  Alexei Filippov  <alph@chromium.org>
309
310         Web Inspector: Dim a component's subitems' color in NMI snapshot
311         https://bugs.webkit.org/show_bug.cgi?id=102224
312
313         Reviewed by Yury Semikhatsky.
314
315         * inspector/front-end/NativeMemorySnapshotView.js:
316         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
317         * inspector/front-end/nativeMemoryProfiler.css:
318         (.native-snapshot-view .data-grid .dimmed div.size-bar):
319
320 2012-11-19  Erik Arvidsson  <arv@chromium.org>
321
322         Update DOMException name: NetworkError
323         https://bugs.webkit.org/show_bug.cgi?id=102503
324
325         Reviewed by Kentaro Hara.
326
327         Patch 19 of 25 to update DOMException name to match the spec and Firefox.
328
329         No code uses DOMException NetworkError. We do use NETWORK_ERR for XMLHttpRequestException. See bug 102506.
330
331         * dom/DOMCoreException.cpp:
332
333 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
334
335         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
336         https://bugs.webkit.org/show_bug.cgi?id=102649
337
338         Reviewed by Adam Barth.
339
340         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
341         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
342         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
343
344         No new tests as there is no new functionality.
345
346         * Modules/webaudio/AudioBufferSourceNode.cpp:
347         (WebCore::AudioBufferSourceNode::looping):
348         (WebCore::AudioBufferSourceNode::setLooping):
349         * Modules/webaudio/AudioContext.cpp:
350         (WebCore::AudioContext::AudioContext):
351         (WebCore::AudioContext::stop):
352         (WebCore::AudioContext::scriptExecutionContext):
353         (WebCore::AudioContext::fireCompletionEvent):
354         (WebCore::AudioContext::reportMemoryUsage):
355         * Modules/webaudio/AudioContext.h:
356         (AudioContext):
357         * Modules/webaudio/ScriptProcessorNode.cpp:
358         (WebCore::ScriptProcessorNode::fireProcessEvent):
359         (WebCore::ScriptProcessorNode::scriptExecutionContext):
360
361 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
362
363         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
364         https://bugs.webkit.org/show_bug.cgi?id=102356
365
366         Reviewed by Adam Barth.
367
368         A clean-up code was moved from uninitialize to clear method.
369         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
370         m_isStopScheduled filters out second ActiveDOMObject::stop call.
371         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
372         adoptRef was added in createOfflineContext method.
373         A guard was added into deleteMarkedNodes.
374
375         Test: inspector-protocol/nmi-webaudio-leak-test.html
376
377         * Modules/webaudio/AudioContext.cpp:
378         (WebCore::AudioContext::createOfflineContext):
379         (WebCore::AudioContext::AudioContext):
380         (WebCore::AudioContext::constructCommon):
381         (WebCore::AudioContext::~AudioContext):
382         (WebCore::AudioContext::clear):
383         (WebCore::AudioContext::uninitialize):
384         (WebCore::AudioContext::stopDispatch):
385         (WebCore::AudioContext::stop):
386         (WebCore::AudioContext::markForDeletion):
387         (WebCore::AudioContext::scheduleNodeDeletion):
388         (WebCore::AudioContext::deleteMarkedNodes):
389         * Modules/webaudio/AudioContext.h:
390         (AudioContext):
391         * bindings/v8/custom/V8AudioContextCustom.cpp:
392         (WebCore::V8AudioContext::constructorCallback):
393         * inspector/InspectorMemoryAgent.cpp:
394         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
395         * platform/PlatformMemoryInstrumentation.cpp:
396         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
397         (WebCore):
398         * platform/PlatformMemoryInstrumentation.h:
399         (PlatformMemoryInstrumentation):
400         (WebCore):
401
402 2012-11-19  Erik Arvidsson  <arv@chromium.org>
403
404         Update DOMException name: QuotaExceededError
405         https://bugs.webkit.org/show_bug.cgi?id=102512
406
407         Reviewed by Kentaro Hara.
408
409         Patch 22 of 25 to update DOMException name to match the spec and Firefox.
410
411         Updated existing tests.
412
413         * dom/DOMCoreException.cpp:
414
415 2012-11-19  Erik Arvidsson  <arv@chromium.org>
416
417         Update DOMException name: AbortError
418         https://bugs.webkit.org/show_bug.cgi?id=102508
419
420         Reviewed by Kentaro Hara.
421
422         Patch 20 of 25 to update DOMException name to match the spec and Firefox.
423
424         No code uses DOMException AbortError. We do use ABORT_ERR for XMLHttpRequestException. See bug 102506.
425
426         * dom/DOMCoreException.cpp:
427
428 2012-11-19  Kentaro Hara  <haraken@chromium.org>
429
430         Unreviewed, rolling out r135111.
431         http://trac.webkit.org/changeset/135111
432         https://bugs.webkit.org/show_bug.cgi?id=102356
433
434         The patch caused crashes in several layout tests
435
436         * Modules/webaudio/AudioContext.cpp:
437         (WebCore::AudioContext::createOfflineContext):
438         (WebCore::AudioContext::AudioContext):
439         (WebCore::AudioContext::constructCommon):
440         (WebCore::AudioContext::~AudioContext):
441         (WebCore::AudioContext::uninitialize):
442         (WebCore::AudioContext::uninitializeDispatch):
443         (WebCore::AudioContext::stop):
444         (WebCore::AudioContext::markForDeletion):
445         (WebCore::AudioContext::scheduleNodeDeletion):
446         (WebCore::AudioContext::deleteMarkedNodes):
447         * Modules/webaudio/AudioContext.h:
448         (AudioContext):
449         * bindings/v8/custom/V8AudioContextCustom.cpp:
450         (WebCore::V8AudioContext::constructorCallback):
451         * inspector/InspectorMemoryAgent.cpp:
452         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
453         * platform/PlatformMemoryInstrumentation.cpp:
454         (WebCore):
455         * platform/PlatformMemoryInstrumentation.h:
456
457 2012-11-19  Kentaro Hara  <haraken@chromium.org>
458
459         Unreviewed, rolling out r135116.
460         http://trac.webkit.org/changeset/135116
461         https://bugs.webkit.org/show_bug.cgi?id=102649
462
463         Revert this patch to revert r135111, which caused crashes in
464         several layout tests
465
466         * Modules/webaudio/AudioBufferSourceNode.cpp:
467         (WebCore::AudioBufferSourceNode::looping):
468         (WebCore::AudioBufferSourceNode::setLooping):
469         * Modules/webaudio/AudioContext.cpp:
470         (WebCore::AudioContext::AudioContext):
471         (WebCore::AudioContext::stop):
472         (WebCore::AudioContext::document):
473         (WebCore):
474         (WebCore::AudioContext::hasDocument):
475         (WebCore::AudioContext::scriptExecutionContext):
476         (WebCore::AudioContext::fireCompletionEvent):
477         (WebCore::AudioContext::reportMemoryUsage):
478         * Modules/webaudio/AudioContext.h:
479         (AudioContext):
480         * Modules/webaudio/ScriptProcessorNode.cpp:
481         (WebCore::ScriptProcessorNode::fireProcessEvent):
482         (WebCore::ScriptProcessorNode::scriptExecutionContext):
483
484 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
485
486         Web Inspector: Refine JsDoc in DebuggerScriptMapping.js
487         https://bugs.webkit.org/show_bug.cgi?id=102673
488
489         Reviewed by Vsevolod Vlasov.
490
491         DebuggerScriptMapping calls public method "addScript" not defined
492         in SourceMapping interface.
493
494         To make things clear I've added ScriptSourceMapping interface that
495         extends SourceMapping interface by adding "addScript" method.
496
497         * inspector/front-end/SourceMapping.js: Added "ScriptSourceMapping".
498         * inspector/front-end/CompilerScriptMapping.js:
499         Updated "@implements" to ScriptSourceMapping.
500         * inspector/front-end/ResourceScriptMapping.js: Ditto.
501         * inspector/front-end/ScriptSnippetModel.js: Ditto.
502         * inspector/front-end/DebuggerScriptMapping.js: Updated signatures.
503         Removed useless code.
504
505 2012-11-19  Tim Horton  <timothy_horton@apple.com>
506
507         Unreviewed, untested build fix.
508
509         * bindings/scripts/IDLParser.pm:
510         (parseModule):
511
512 2012-11-19  Dongwoo Joshua Im  <dw.im@samsung.com>
513
514         [CSS3] Move CSSPropertyWebkitTextAlignLast into isValidKeywordPropertyAndValue function
515         https://bugs.webkit.org/show_bug.cgi?id=102303
516
517         Reviewed by Alexis Menard.
518
519         Move the part which check whether CSSPropertyWebkitTextAlignLast has available value
520         into the isValidKeywordPropertyAndValue function, like the same kind of properties.
521         This will help speed wise in JS.
522
523         No new functionality, no new tests.
524
525         * css/CSSParser.cpp:
526         (WebCore::isValidKeywordPropertyAndValue):
527         (WebCore::isKeywordPropertyID):
528         (WebCore::CSSParser::parseValue):
529
530 2012-11-19  Keishi Hattori  <keishi@webkit.org>
531
532         REGRESSION (r133565): Calendar picker isn't animating when changing month by pressing 't'
533         https://bugs.webkit.org/show_bug.cgi?id=102660
534
535         Reviewed by Kent Tamura.
536
537         The calendar picker used to animate when you press 't'.
538
539         No new tests.
540
541         * Resources/pagepopups/calendarPicker.js:
542         (DaysTable.prototype.selectRange):
543
544 2012-11-19  Kent Tamura  <tkent@chromium.org>
545
546         input.value="" should clear date/time input elements with partial values
547         https://bugs.webkit.org/show_bug.cgi?id=102645
548
549         Reviewed by Kentaro Hara.
550
551         Tests: fast/forms/date-multiple-fields/date-multiple-fields-value-set-empty.html
552                fast/forms/datetime-multiple-fields/datetime-multiple-fields-value-set-empty.html
553                fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty.html
554                fast/forms/month-multiple-fields/month-multiple-fields-value-set-empty.html
555                fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
556                fast/forms/week-multiple-fields/week-multiple-fields-value-set-empty.html
557
558         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
559         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
560         If the new value is an empty string and sub-fields has values, we should
561         update the UI value to the empty state.
562         * html/DateTimeFieldsState.h:
563         (WebCore::DateTimeFieldsState::hasAnyValue):
564         Added. It returns true if one or more sub-fields are not empty.
565
566 2012-11-19  Andrey Adaikin  <aandrey@chromium.org>
567
568         Web Inspector: [Canvas] if many canvases are being instrumented show the screenshot of the first one
569         https://bugs.webkit.org/show_bug.cgi?id=102522
570
571         Reviewed by Yury Semikhatsky.
572
573         When many canvases are being instrumented we'll want to show replay screenshots for each canvas.
574         Meanwhile, show the screenshot of the first one (instead of the last one), as it's likely to be the "main" canvas.
575         Drive-by: add more typification for the JS compiler.
576         Drive-by: create a new canvas for WebGL replay every time (similar to 2D replay) to avoid problems with resetting the context state.
577
578         * inspector/InjectedScriptCanvasModuleSource.js:
579         (.):
580
581 2012-11-19  Kentaro Hara  <haraken@chromium.org>
582
583         Remove IDLStructure.pm
584         https://bugs.webkit.org/show_bug.cgi?id=102642
585
586         Reviewed by Adam Barth.
587
588         Previously IDLStructure.pm was full of regular expressions to
589         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
590         just contains several data structures for the IDL parser. We can
591         move them to IDLParser.pm and thus remove IDLStructure.pm.
592
593         No tests. No change in generated code.
594
595         * CMakeLists.txt:
596         * DerivedSources.make:
597         * DerivedSources.pri:
598         * GNUmakefile.am:
599         * WebCore.gyp/WebCore.gyp:
600         * WebCore.vcproj/MigrateScripts:
601         * WebCore.vcproj/WebCore.vcproj:
602         * WebCore.xcodeproj/project.pbxproj:
603         * bindings/scripts/IDLParser.pm:
604         (Parse):
605         (parseInterface):
606         (parseException):
607         (parseConst):
608         (parseAttributeRest):
609         (parseOperationRest):
610         (parseOptionalOrRequiredArgument):
611         (parseExceptionField):
612         (parseInterfaceOld):
613         (parseExceptionOld):
614         (parseAttributeRestOld):
615         (applyExtendedAttributeList):
616         * bindings/scripts/IDLStructure.pm: Removed.
617
618 2012-11-19  Alexei Filippov  <alph@chromium.org>
619
620         Web Inspector: refine time and bytes output formatting
621         https://bugs.webkit.org/show_bug.cgi?id=102265
622
623         Reviewed by Yury Semikhatsky.
624
625         Add a space between number and unit, otherwise it's hard to read things like 88B.
626         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
627
628         * English.lproj/localizedStrings.js:
629         * inspector/front-end/CookiesTable.js:
630         (WebInspector.CookiesTable.prototype._createGridNode):
631         * inspector/front-end/UIUtils.js:
632         (Number.secondsToString):
633         (Number.bytesToString):
634
635 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
636
637         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
638         https://bugs.webkit.org/show_bug.cgi?id=102383
639
640         Reviewed by Yury Semikhatsky.
641
642         Fixed string presentation of event.
643
644         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
645
646 2012-11-19  Kentaro Hara  <haraken@chromium.org>
647
648         Remove IDLStructure.pm
649         https://bugs.webkit.org/show_bug.cgi?id=102642
650
651         Reviewed by Adam Barth.
652
653         Previously IDLStructure.pm was full of regular expressions to
654         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
655         just contains several data structures for the IDL parser. We can
656         move them to IDLParser.pm and thus remove IDLStructure.pm.
657
658         No tests. No change in generated code.
659
660         * CMakeLists.txt:
661         * DerivedSources.make:
662         * DerivedSources.pri:
663         * GNUmakefile.am:
664         * WebCore.gyp/WebCore.gyp:
665         * WebCore.vcproj/MigrateScripts:
666         * WebCore.vcproj/WebCore.vcproj:
667         * WebCore.xcodeproj/project.pbxproj:
668         * bindings/scripts/IDLParser.pm:
669         (Parse):
670         (parseInterface):
671         (parseException):
672         (parseConst):
673         (parseAttributeRest):
674         (parseOperationRest):
675         (parseOptionalOrRequiredArgument):
676         (parseExceptionField):
677         (parseInterfaceOld):
678         (parseExceptionOld):
679         (parseAttributeRestOld):
680         (applyExtendedAttributeList):
681         * bindings/scripts/IDLStructure.pm: Removed.
682
683 2012-11-19  Alexei Filippov  <alph@chromium.org>
684
685         Web Inspector: refine time and bytes output formatting
686         https://bugs.webkit.org/show_bug.cgi?id=102265
687
688         Reviewed by Yury Semikhatsky.
689
690         Add a space between number and unit, otherwise it's hard to read things like 88B.
691         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
692
693         * English.lproj/localizedStrings.js:
694         * inspector/front-end/CookiesTable.js:
695         (WebInspector.CookiesTable.prototype._createGridNode):
696         * inspector/front-end/UIUtils.js:
697         (Number.secondsToString):
698         (Number.bytesToString):
699
700 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
701
702         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
703         https://bugs.webkit.org/show_bug.cgi?id=102383
704
705         Reviewed by Yury Semikhatsky.
706
707         Fixed string presentation of event.
708
709         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
710
711 2012-11-19  Kentaro Hara  <haraken@chromium.org>
712
713         Unreviewed, rolling out r135114.
714         http://trac.webkit.org/changeset/135114
715         https://bugs.webkit.org/show_bug.cgi?id=102642
716
717         it broke Qt build
718
719         * CMakeLists.txt:
720         * DerivedSources.make:
721         * DerivedSources.pri:
722         * GNUmakefile.am:
723         * WebCore.gyp/WebCore.gyp:
724         * WebCore.vcproj/MigrateScripts:
725         * WebCore.vcproj/WebCore.vcproj:
726         * WebCore.xcodeproj/project.pbxproj:
727         * bindings/scripts/IDLParser.pm:
728         (Parse):
729         (parseInterface):
730         (parseException):
731         (parseConst):
732         (parseAttributeRest):
733         (parseOperationRest):
734         (parseOptionalOrRequiredArgument):
735         (parseExceptionField):
736         (parseInterfaceOld):
737         (parseExceptionOld):
738         (parseAttributeRestOld):
739         (applyExtendedAttributeList):
740         * bindings/scripts/IDLStructure.pm: Added.
741
742 2012-11-19  Vsevolod Vlasov  <vsevik@chromium.org>
743
744         Unreviewed inspector closure compilation fix.
745
746         * inspector/front-end/ObjectPropertiesSection.js:
747         * inspector/front-end/externs.js:
748
749 2012-11-18  Ilya Tikhonovsky  <loislo@chromium.org>
750
751         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
752         https://bugs.webkit.org/show_bug.cgi?id=102649
753
754         Reviewed by Adam Barth.
755
756         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
757         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
758         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
759
760         No new tests as there is no new functionality.
761
762         * Modules/webaudio/AudioBufferSourceNode.cpp:
763         (WebCore::AudioBufferSourceNode::looping):
764         (WebCore::AudioBufferSourceNode::setLooping):
765         * Modules/webaudio/AudioContext.cpp:
766         (WebCore::AudioContext::AudioContext):
767         (WebCore::AudioContext::stop):
768         (WebCore::AudioContext::fireCompletionEvent):
769         (WebCore::AudioContext::reportMemoryUsage):
770         * Modules/webaudio/AudioContext.h:
771         (WebCore::AudioContext::scriptExecutionContext):
772         (AudioContext):
773         * Modules/webaudio/ScriptProcessorNode.cpp:
774         (WebCore::ScriptProcessorNode::fireProcessEvent):
775         (WebCore::ScriptProcessorNode::scriptExecutionContext):
776
777 2012-11-18  Kentaro Hara  <haraken@chromium.org>
778
779         [V8] Remove unused variables from CodeGeneratorV8.pm
780         https://bugs.webkit.org/show_bug.cgi?id=102648
781
782         Reviewed by Adam Barth.
783
784         No tests. No change in generated code.
785
786         * bindings/scripts/CodeGeneratorV8.pm:
787         (GenerateInterface):
788         (GenerateHeader):
789         (GetInternalFields):
790         (GenerateNormalAttrGetter):
791         (GenerateSingleBatchedAttribute):
792         (GenerateImplementationCustomCall):
793         (GenerateFunctionCallString):
794         (CreateCustomSignature):
795         (GetContextEnableFunction):
796
797 2012-11-18  Kentaro Hara  <haraken@chromium.org>
798
799         Remove IDLStructure.pm
800         https://bugs.webkit.org/show_bug.cgi?id=102642
801
802         Reviewed by Adam Barth.
803
804         Previously IDLStructure.pm was full of regular expressions to
805         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
806         just contains several data structures for the IDL parser. We can
807         move them to IDLParser.pm and thus remove IDLStructure.pm.
808
809         No tests. No change in generated code.
810
811         * CMakeLists.txt:
812         * DerivedSources.make:
813         * DerivedSources.pri:
814         * GNUmakefile.am:
815         * WebCore.gyp/WebCore.gyp:
816         * WebCore.vcproj/MigrateScripts:
817         * WebCore.vcproj/WebCore.vcproj:
818         * WebCore.xcodeproj/project.pbxproj:
819         * bindings/scripts/IDLParser.pm:
820         (Parse):
821         (parseInterface):
822         (parseException):
823         (parseConst):
824         (parseAttributeRest):
825         (parseOperationRest):
826         (parseOptionalOrRequiredArgument):
827         (parseExceptionField):
828         (parseInterfaceOld):
829         (parseExceptionOld):
830         (parseAttributeRestOld):
831         (applyExtendedAttributeList):
832         * bindings/scripts/IDLStructure.pm: Removed.
833
834 2012-11-18  Kentaro Hara  <haraken@chromium.org>
835
836         [V8] Make more use of $v8Interface in CodeGeneratorV8.pm
837         https://bugs.webkit.org/show_bug.cgi?id=102639
838
839         Reviewed by Adam Barth.
840
841         We can replace hard-coded "V8${interfaceName}" with $v8Interface.
842
843         No tests. No change in generated code.
844
845         * bindings/scripts/CodeGeneratorV8.pm:
846         (GenerateNormalAttrGetter):
847         (GenerateNormalAttrSetter):
848         (GenerateFunctionCallback):
849         (GenerateNamedConstructorCallback):
850         (GenerateImplementationIndexer):
851         (GenerateImplementationNamedPropertyGetter):
852         (GenerateImplementation):
853
854 2012-11-16  Ilya Tikhonovsky  <loislo@chromium.org>
855
856         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
857         https://bugs.webkit.org/show_bug.cgi?id=102356
858
859         Reviewed by Adam Barth.
860
861         A clean-up code was moved from uninitialize to clear method.
862         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
863         m_isStopScheduled filters out second ActiveDOMObject::stop call.
864         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
865         adoptRef was added in createOfflineContext method.
866
867         Test: inspector-protocol/nmi-webaudio-leak-test.html
868
869         * Modules/webaudio/AudioContext.cpp:
870         (WebCore::AudioContext::createOfflineContext):
871         (WebCore::AudioContext::AudioContext):
872         (WebCore::AudioContext::constructCommon):
873         (WebCore::AudioContext::~AudioContext):
874         (WebCore::AudioContext::clear):
875         (WebCore::AudioContext::uninitialize):
876         (WebCore::AudioContext::stopDispatch):
877         (WebCore::AudioContext::stop):
878         (WebCore::AudioContext::markForDeletion):
879         (WebCore::AudioContext::scheduleNodeDeletion):
880         (WebCore::AudioContext::deleteMarkedNodes):
881         * Modules/webaudio/AudioContext.h:
882         (AudioContext):
883         * bindings/v8/custom/V8AudioContextCustom.cpp:
884         (WebCore::V8AudioContext::constructorCallback):
885         * inspector/InspectorMemoryAgent.cpp:
886         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
887         * platform/PlatformMemoryInstrumentation.cpp:
888         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
889         (WebCore):
890         * platform/PlatformMemoryInstrumentation.h:
891         (PlatformMemoryInstrumentation):
892         (WebCore):
893
894 2012-11-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
895
896         min/max/step support for calendar picker on datetime/datetime-local
897         https://bugs.webkit.org/show_bug.cgi?id=102628
898
899         Reviewed by Kent Tamura.
900
901         Gray out dates with no allowed values on calendar picker for datetime/datetime-local
902         when values are limited by min/max/step attributes.
903
904         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-with-step.html
905
906         * Resources/pagepopups/calendarPicker.js:
907         (CalendarPicker.prototype._stepMismatch):
908         Returns true iff there are any allowed values in the given day.
909
910 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
911
912         Remove non-existent directories from the make system
913         https://bugs.webkit.org/show_bug.cgi?id=102632
914
915         Reviewed by Adam Barth.
916
917         Remove (non-existent) symbian references from the exclude list in gyp project files.
918
919         No new tests as there is no new functionality.
920
921         * WebCore.gyp/WebCore.gyp:
922
923 2012-11-18  Patrick Gansterer  <paroga@webkit.org>
924
925         [WIN] Add a IMLangFontLinkType typedef
926         https://bugs.webkit.org/show_bug.cgi?id=102584
927
928         Reviewed by Brent Fulgham.
929
930         Add a central typedef for IMLangFontLink(2) to get rid of a bunch of ifdefs.
931
932         * platform/graphics/FontCache.h:
933         (WebCore):
934         * platform/graphics/win/FontCacheWin.cpp:
935         (WebCore::FontCache::getFontLinkInterface):
936         (WebCore::getCJKCodePageMasks):
937         (WebCore::createMLangFont):
938         (WebCore::FontCache::getFontDataForCharacters):
939         * platform/graphics/win/SimpleFontDataWin.cpp:
940         (WebCore::SimpleFontData::containsCharacters):
941         * platform/graphics/wince/FontCacheWinCE.cpp:
942         (WebCore):
943         (WebCore::FontCache::getFontLinkInterface):
944         (WebCore::getCJKCodePageMasks):
945         (WebCore::FontCache::getFontDataForCharacters):
946         * platform/graphics/wince/FontPlatformData.cpp:
947         (WebCore::FontFamilyCodePageInfo::codePages):
948         (WebCore::FixedSizeFontData::create):
949         * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
950         (WebCore::GlyphPage::fill):
951
952 2012-11-18  Mike West  <mkwst@chromium.org>
953
954         Web Inspector: Remove unused ConsoleMessage constructor.
955         https://bugs.webkit.org/show_bug.cgi?id=102590
956
957         Reviewed by Brent Fulgham.
958
959         We currently have a ConsoleMessage constructor that's unused. Let's
960         kill it.
961
962         * inspector/ConsoleMessage.cpp:
963         * inspector/ConsoleMessage.h:
964         (ConsoleMessage):
965             Removing an unused constructor variant.
966
967 2012-11-18  Andreas Kling  <akling@apple.com>
968
969         StyledElement: Make handling the "style" attribute a litte faster.
970         <http://webkit.org/b/102623>
971
972         Reviewed by Ojan Vafai.
973
974         We know that "style" is never a presentation attribute, so avoid the virtual call to isPresentationAttribute()
975         by hoisting the parseAttribute() logic up into attributeChanged().
976         Did the same thing with Element::parseAttribute() for consistency.
977
978         Knocks ~0.6% of samples off of the DOM/CreateNodes performance test.
979
980         * dom/Element.cpp:
981         (WebCore::Element::attributeChanged):
982         * dom/Element.h:
983         (WebCore::Element::parseAttribute):
984         * dom/StyledElement.cpp:
985         (WebCore::StyledElement::attributeChanged):
986         * dom/StyledElement.h:
987         (StyledElement):
988
989 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
990
991         [CMake] Consolidate common input files
992         https://bugs.webkit.org/show_bug.cgi?id=101632
993
994         Reviewed by Rob Buis.
995
996         Consolidate and sort the list of files, move common source files
997         into CMakeLists.txt from the port specific files.
998
999         No new tests as there is no new functionality.
1000
1001         * CMakeLists.txt:
1002         * PlatformBlackBerry.cmake:
1003         * PlatformEfl.cmake:
1004         * PlatformWinCE.cmake:
1005
1006 2012-11-18  Andreas Kling  <akling@apple.com>
1007
1008         Tighten small SharedBuffers by reserving the exact amount of space needed.
1009         <http://webkit.org/b/102625>
1010
1011         Reviewed by Anders Carlsson.
1012
1013         When adding the first chunk to a small (<4096 bytes) SharedBuffer, reserve the exact
1014         amount of space needed instead of leaving it to Vector<char>::append().
1015
1016         1.86MB progression on Membuster3.
1017
1018         * platform/SharedBuffer.cpp:
1019         (WebCore::SharedBuffer::append):
1020
1021 2012-11-18  Ryosuke Niwa  <rniwa@webkit.org>
1022
1023         Make namedItem return a node list only in HTMLFormControlsCollection and HTMLOptionsCollection
1024         https://bugs.webkit.org/show_bug.cgi?id=101311
1025
1026         Reviewed by Darin Adler.
1027
1028         Introduce two new interfaces HTMLFormControlsCollection and HTMLOptionsCollection to be used by form.elements
1029         and select.options. These two interfaces have the named getter and namedItem that returns a live NodeList when
1030         there are multiple matches. Introducing these two interfaces allow us to make "regular" HTMLCollection's named
1031         getter and namedItem return exactly one node or null as specified in HTML5:
1032         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#collections-0
1033
1034         Unfortunately, HTMLOptionsCollection still has a bug that its named getter and namedItem returns
1035         a static NodeList instead of a live NodeList (DynamicNodeList) at the moment.
1036
1037         Also got rid of Document::objects since it's not exposed in IDL or called anywhere.
1038
1039         Test: fast/dom/html-collections-namedItem.html
1040
1041         * CMakeLists.txt:
1042         * DerivedSources.cpp:
1043         * DerivedSources.make:
1044         * DerivedSources.pri:
1045         * GNUmakefile.list.am:
1046         * Target.pri:
1047         * UseJSC.cmake:
1048         * UseV8.cmake:
1049         * WebCore.gypi:
1050         * WebCore.vcproj/WebCore.vcproj:
1051         * WebCore.xcodeproj/project.pbxproj:
1052         * bindings/js/JSBindingsAllInOne.cpp:
1053         * bindings/js/JSHTMLAllCollectionCustom.cpp:
1054         (WebCore::getNamedItems):
1055         * bindings/js/JSHTMLCollectionCustom.cpp:
1056         (WebCore::JSHTMLCollection::nameGetter): Now returns exactly one node or null.
1057         (WebCore::toJS):
1058         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Added.
1059         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
1060         (WebCore::JSHTMLFormControlsCollection::canGetItemsForName):
1061         (WebCore::JSHTMLFormControlsCollection::nameGetter):
1062         (WebCore::JSHTMLFormControlsCollection::namedItem):
1063         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
1064         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
1065         This is a bug. It should be a live NodeList instead.
1066         (WebCore::JSHTMLOptionsCollection::canGetItemsForName):
1067         (WebCore::JSHTMLOptionsCollection::nameGetter):
1068         (WebCore::JSHTMLOptionsCollection::namedItem):
1069         * bindings/js/CodeGeneratorJS.pm: Include JSNode.js for all HTML*Collection interfaces for simplicity.
1070         * bindings/js/CodeGeneratorV8.pm: HTMLOptionsCollection now inherits from HTMLCollection. See
1071         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmloptionscollection
1072         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Pass in isolate when we can.
1073         (WebCore::getNamedItems): Added a comment about how we should be returning
1074         a HTMLCollection when there are multiple matches.
1075         (WebCore::getItem):
1076         (WebCore::V8HTMLAllCollection::namedPropertyGetter):
1077         (WebCore::V8HTMLAllCollection::namedItemCallback):
1078         * bindings/v8/custom/V8HTMLCollectionCustom.cpp: Now returns exactly one node or null.
1079         (WebCore::V8HTMLCollection::namedPropertyGetter):
1080         (WebCore::toV8):
1081         * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Added.
1082         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
1083         (WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
1084         (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
1085         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
1086         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
1087         This is a bug. It should be a live NodeList instead.
1088         (WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
1089         (WebCore::V8HTMLOptionsCollection::namedItemCallback):
1090         * dom/Document.cpp: Removed Document::objects since it was not used anywhere.
1091         * dom/Document.h:
1092         (Document):
1093         * dom/Element.cpp:
1094         (WebCore::ElementRareData::ensureCachedHTMLCollection): form.elements should instantiate
1095         a HTMLFormControlsCollection instead of a HTMLCollection.
1096         * html/CollectionType.h:
1097         * html/HTMLCollection.idl: Removed [Custom] since namedItem is a regular function call now.
1098         * html/HTMLFieldSetElement.cpp:
1099         * html/HTMLFieldSetElement.h:
1100         * html/HTMLFormCollection.cpp: Removed.
1101         * html/HTMLFormCollection.h: Removed.
1102         * html/HTMLFormControlsCollection.cpp: Copied from Source/WebCore/html/HTMLFormCollection.cpp.
1103         (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
1104         (WebCore::HTMLFormControlsCollection::create):
1105         (WebCore::HTMLFormControlsCollection::~HTMLFormControlsCollection):
1106         (WebCore::HTMLFormControlsCollection::formControlElements):
1107         (WebCore::HTMLFormControlsCollection::formImageElements):
1108         (WebCore::HTMLFormControlsCollection::virtualItemAfter):
1109         (WebCore::HTMLFormControlsCollection::namedItem):
1110         (WebCore::HTMLFormControlsCollection::updateNameCache):
1111         * html/HTMLFormControlsCollection.h: Copied from Source/WebCore/html/HTMLFormCollection.h.
1112         (HTMLFormControlsCollection):
1113         * html/HTMLFormControlsCollection.idl: Added.
1114         * html/HTMLFormElement.cpp:
1115         * html/HTMLFormElement.h:
1116         * html/HTMLOptionsCollection.idl:
1117
1118 2012-11-18  Kentaro Hara  <haraken@chromium.org>
1119
1120         [V8] Rename $className to $v8InterfaceName
1121         https://bugs.webkit.org/show_bug.cgi?id=102487
1122
1123         Reviewed by Adam Barth.
1124
1125         In CodeGeneratorV8.pm, $className is always "V8$interfaceName".
1126         We should rename $className to $v8InterfaceName. Also we can
1127         remove GetCallbackClassName().
1128
1129         No tests. No change in behavior.
1130
1131         * bindings/scripts/CodeGeneratorV8.pm:
1132         (GenerateHeader):
1133         (GetHeaderClassInclude):
1134         (GenerateDomainSafeFunctionGetter):
1135         (GenerateDomainSafeFunctionSetter):
1136         (GenerateParametersCheck):
1137         (GenerateImplementation):
1138         (GenerateHeaderContentHeader):
1139         (GenerateImplementationContentHeader):
1140         (GenerateCallbackHeader):
1141         (GenerateCallbackImplementation):
1142         (GenerateToV8Converters):
1143         (GetPassRefPtrType):
1144
1145 2012-11-18  Kentaro Hara  <haraken@chromium.org>
1146
1147         [V8] Remove GetTypeFromSignature() from CodeGeneratorV8.pm
1148         https://bugs.webkit.org/show_bug.cgi?id=102499
1149
1150         Reviewed by Adam Barth.
1151
1152         No tests. No change in behavior.
1153
1154         * bindings/scripts/CodeGeneratorV8.pm:
1155         (GenerateNormalAttrGetter):
1156         (GenerateNormalAttrSetter):
1157         (GenerateParametersCheckExpression):
1158         (GenerateParametersCheck):
1159         (GenerateFunctionCallString):
1160         (GetNativeTypeFromSignature):
1161         (TranslateParameter):
1162         (TypeCanFailConversion):
1163         (JSValueToNative):
1164         (NativeToJSValue):
1165
1166 2012-11-18  Kentaro Hara  <haraken@chromium.org>
1167
1168         Remove GenerateModule() from all code generators
1169         https://bugs.webkit.org/show_bug.cgi?id=102490
1170
1171         Reviewed by Adam Barth.
1172
1173         WebKit IDL files no longer support modules. The Web IDL spec
1174         no longer supports modules. We can remove it from code generators.
1175
1176         No tests. No change in behavior.
1177
1178         * bindings/scripts/CodeGenerator.pm:
1179         (ProcessDocument):
1180         * bindings/scripts/CodeGeneratorCPP.pm:
1181         * bindings/scripts/CodeGeneratorGObject.pm:
1182         * bindings/scripts/CodeGeneratorJS.pm:
1183         * bindings/scripts/CodeGeneratorObjC.pm:
1184         * bindings/scripts/CodeGeneratorV8.pm:
1185
1186 2012-11-18  Kentaro Hara  <haraken@chromium.org>
1187
1188         [V8] Get rid of unused functions and inline redundant functions in CodeGeneratorV8.pm
1189         https://bugs.webkit.org/show_bug.cgi?id=102497
1190
1191         Reviewed by Adam Barth.
1192
1193         No tests. No change in behavior.
1194
1195         * bindings/scripts/CodeGeneratorV8.pm:
1196         (GenerateDomainSafeFunctionGetter):
1197         (GenerateNormalAttrGetter):
1198         (GenerateFunctionCallString):
1199
1200 2012-11-18  Sheriff Bot  <webkit.review.bot@gmail.com>
1201
1202         Unreviewed, rolling out r135074.
1203         http://trac.webkit.org/changeset/135074
1204         https://bugs.webkit.org/show_bug.cgi?id=102619
1205
1206         Made most layout tests crash. (Requested by rakuco on
1207         #webkit).
1208
1209         * PlatformEfl.cmake:
1210         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
1211         (WebCore::GraphicsContext3D::create):
1212         (WebCore::GraphicsContext3D::GraphicsContext3D):
1213         (WebCore::GraphicsContext3D::~GraphicsContext3D):
1214         (WebCore::GraphicsContext3D::makeContextCurrent):
1215         (WebCore::GraphicsContext3D::setContextLostCallback):
1216         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
1217         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
1218         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
1219         (WebCore::GraphicsContext3DPrivate::createSurface):
1220         (WebCore::GraphicsContext3DPrivate::setCurrentGLContext):
1221         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
1222         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
1223         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
1224         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
1225         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
1226         * platform/graphics/efl/GraphicsContext3DPrivate.h:
1227         (GraphicsContext3DPrivate):
1228         * platform/graphics/opengl/GLDefs.h: Removed.
1229         * platform/graphics/opengl/GLPlatformContext.cpp: Removed.
1230         * platform/graphics/opengl/GLPlatformContext.h: Removed.
1231         * platform/graphics/opengl/GLPlatformSurface.cpp: Removed.
1232         * platform/graphics/opengl/GLPlatformSurface.h: Removed.
1233         * platform/graphics/surfaces/glx/GLXContext.cpp: Removed.
1234         * platform/graphics/surfaces/glx/GLXContext.h: Removed.
1235         * platform/graphics/surfaces/glx/GLXSurface.cpp: Removed.
1236         * platform/graphics/surfaces/glx/GLXSurface.h: Removed.
1237
1238 2012-11-18  Antti Koivisto  <antti@apple.com>
1239
1240         REGRESSION(r129644): User StyleSheet not applying
1241         https://bugs.webkit.org/show_bug.cgi?id=102110
1242
1243         Reviewed by Andreas Kling.
1244
1245         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
1246         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
1247         
1248         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
1249         It also generally cleans up the code around injected and user stylesheets.
1250
1251         Tests: userscripts/user-script-and-stylesheet.html
1252                userscripts/user-stylesheet-invalidate.html
1253
1254         * css/StyleResolver.cpp:
1255         (WebCore::StyleResolver::StyleResolver):
1256         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
1257         (WebCore::collectCSSOMWrappers):
1258         * css/StyleResolver.h:
1259         (StyleResolver):
1260         * dom/Document.cpp:
1261         (WebCore::Document::setCompatibilityMode):
1262         * dom/DocumentStyleSheetCollection.cpp:
1263         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
1264         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
1265         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
1266         (WebCore):
1267         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
1268         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
1269         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
1270         (WebCore::DocumentStyleSheetCollection::addUserSheet):
1271         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
1272         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
1273         * dom/DocumentStyleSheetCollection.h:
1274         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
1275         (DocumentStyleSheetCollection):
1276         * page/PageGroup.cpp:
1277         (WebCore::PageGroup::addUserStyleSheetToWorld):
1278         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
1279         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
1280         (WebCore::PageGroup::removeAllUserContent):
1281         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
1282         * page/PageGroup.h:
1283         (PageGroup):
1284
1285 2012-11-18  Adam Barth  <abarth@webkit.org>
1286
1287         Unreviewed.
1288
1289         Update run-bindings-tests baselines after
1290         http://trac.webkit.org/changeset/135063
1291
1292         * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
1293         (JSTestActiveDOMObjectOwner):
1294         * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
1295         (JSTestCustomNamedGetterOwner):
1296         * bindings/scripts/test/JS/JSTestEventConstructor.h:
1297         (JSTestEventConstructorOwner):
1298         * bindings/scripts/test/JS/JSTestEventTarget.h:
1299         (JSTestEventTargetOwner):
1300         * bindings/scripts/test/JS/JSTestException.h:
1301         (JSTestExceptionOwner):
1302         * bindings/scripts/test/JS/JSTestInterface.h:
1303         (JSTestInterfaceOwner):
1304         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
1305         (JSTestMediaQueryListListenerOwner):
1306         * bindings/scripts/test/JS/JSTestNamedConstructor.h:
1307         (JSTestNamedConstructorOwner):
1308         * bindings/scripts/test/JS/JSTestObj.h:
1309         (JSTestObjOwner):
1310         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
1311         (JSTestOverloadedConstructorsOwner):
1312         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
1313         (JSTestSerializedScriptValueInterfaceOwner):
1314
1315 2012-11-18  Simon Fraser  <simon.fraser@apple.com>
1316
1317         Make convertToLayerCoords iterative, rather than recursive
1318         https://bugs.webkit.org/show_bug.cgi?id=102618
1319
1320         Reviewed by Antti Koivisto.
1321
1322         RenderLayer::convertToLayerCoords() is a hot function on profiles.
1323         Change it to be iterative, rather than recursive, so that the
1324         bulk of the function can be inlined.
1325         
1326         Was tested with assertions against the old code during development.
1327
1328         * rendering/RenderLayer.cpp:
1329         (WebCore::accumulateOffsetTowardsAncestor):
1330         (WebCore::RenderLayer::convertToLayerCoords):
1331
1332 2012-11-18  Andreas Kling  <akling@apple.com>
1333
1334         Inline the StyledElement constructor.
1335         <http://webkit.org/b/102615>
1336
1337         Reviewed by Antti Koivisto.
1338
1339         StyledElement sits between Element and HTMLElement in the inheritance chain, and both of those are inline. 
1340         Knocks ~0.4% of samples off of the DOM/CreateNodes performance test.
1341
1342         * dom/StyledElement.cpp:
1343         * dom/StyledElement.h:
1344         (WebCore::StyledElement::StyledElement):
1345
1346 2012-11-18  Andreas Kling  <akling@apple.com>
1347
1348         HTMLMediaElement: Skip unnecessary attribute lookup in parsing of "src" attribute.
1349         <http://webkit.org/b/102614>
1350
1351         Reviewed by Anders Carlsson.
1352
1353         When parsing the "src" attribute, we don't need to look it up with fastHasAttribute()
1354         to know if it's present. If it's not present, 'value' argument will be null.
1355
1356         * html/HTMLMediaElement.cpp:
1357         (WebCore::HTMLMediaElement::parseAttribute):
1358
1359 2012-11-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>
1360
1361         [EFL] Refactor GraphicsContext3DEFL.
1362         https://bugs.webkit.org/show_bug.cgi?id=101291.
1363
1364         Reviewed by Kenneth Rohde Christiansen.
1365
1366         GraphicsContext3DEfl creates GraphicsContext3DPrivate, which acts as its platform Layer.
1367         GraphicsContext3DPrivate needs to handle the following cases:
1368         1) To provide an off-screen buffer for accelerated composition.
1369         2) Render to a current context.
1370         3) To render directly to host window. (currently not supported.)
1371
1372         Before this patch Evas was used to provide us an off-screen context and buffer. GLX was used in
1373         the other supported case. Evas acts as a glue layer to provide us with appropriate
1374         GL bindings (OpenGL functions), GL context and drawable (surface/offscreenbuffer).
1375         However, primitive rendering is handled by TextureMapper and OpenGLShims is used to load the needed GL functions.
1376
1377         It would be for our advantage to be able to take in to use any optimisations/extensions
1378         provided by underlying drivers, specific to a platform (e.g. GLX_MESA_copy_sub_buffer etc.).
1379         This patch introduces an abstraction layer to make it easy to add support for any GL backend (GLX, EGL etc.)
1380         and do any platform specific optimizations as needed without complicating GraphicsContext3DPrivate class.
1381         Two new classes are added with this implementation, GLPlatformContext and GLPlatformSurface.
1382         GraphicsContext3DPrivate would create and own a GLPlatformContext and GLPlatformSurface.
1383
1384         GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
1385         It uses GL extension ARB_robustness (when available) to detect driver resets.
1386         It defines a simple interface for things that need to be handled by the context. Support
1387         for multi-threaded usage and shared context-group would be added later.
1388
1389         GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
1390         It defines a simple interface for things that need to be handled by the surface.
1391         It creates an off-screen rendering area. Any GLPlatformContext (compatible with the surface)
1392         can be used to render into this off-screen area.
1393
1394         This patch also adds GLX implementation. To keep the patch to minimum EGL support would be added in another changeset.
1395
1396         * PlatformEfl.cmake:
1397         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
1398         (WebCore::GraphicsContext3D::create):
1399         (WebCore::GraphicsContext3D::GraphicsContext3D):
1400         (WebCore::GraphicsContext3D::~GraphicsContext3D):
1401         (WebCore::GraphicsContext3D::makeContextCurrent):
1402         (WebCore::GraphicsContext3D::setContextLostCallback):
1403         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
1404         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
1405         (GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
1406         (GraphicsContext3DPrivate::releaseResources):
1407         (GraphicsContext3DPrivate::setContextLostCallback):
1408         (GraphicsContext3DPrivate::platformGraphicsContext3D):
1409         (GraphicsContext3DPrivate::makeContextCurrent):
1410         (GraphicsContext3DPrivate::createGraphicsSurfaces):
1411         (GraphicsContext3DPrivate::copyToGraphicsSurface):
1412         (GraphicsContext3DPrivate::graphicsSurfaceToken):
1413         * platform/graphics/efl/GraphicsContext3DPrivate.h:
1414         (GraphicsContext3DPrivate):
1415         * platform/graphics/opengl/GLDefs.h: Added.
1416         (WebCore):
1417         * platform/graphics/opengl/GLPlatformContext.cpp: Added.
1418         (WebCore):
1419         (WebCore::GLPlatformContext::createContext):
1420         (WebCore::GLPlatformContext::createOffScreenContext):
1421         (WebCore::GLPlatformContext::createCurrentContextWrapper):
1422         (WebCore::GLPlatformContext::GLPlatformContext):
1423         (WebCore::GLPlatformContext::~GLPlatformContext):
1424         (WebCore::GLPlatformContext::makeCurrent):
1425         (WebCore::GLPlatformContext::isValid):
1426         (WebCore::GLPlatformContext::releaseCurrent):
1427         (WebCore::GLPlatformContext::handle):
1428         (WebCore::GLPlatformContext::isCurrentContext):
1429         (WebCore::GLPlatformContext::initialize):
1430         (WebCore::GLPlatformContext::getCurrent):
1431         (WebCore::GLPlatformContext::platformMakeCurrent):
1432         (WebCore::GLPlatformContext::platformReleaseCurrent):
1433         (WebCore::GLPlatformContext::destroy):
1434         * platform/graphics/opengl/GLPlatformContext.h: Added.
1435         (WebCore):
1436         (GLPlatformContext):
1437         * platform/graphics/opengl/GLPlatformSurface.cpp: Added.
1438         (WebCore):
1439         (WebCore::GLPlatformSurface::createOffscreenSurface):
1440         (WebCore::GLPlatformSurface::createTransportSurface):
1441         (WebCore::GLPlatformSurface::GLPlatformSurface):
1442         (WebCore::GLPlatformSurface::~GLPlatformSurface):
1443         (WebCore::GLPlatformSurface::handle):
1444         (WebCore::GLPlatformSurface::geometry):
1445         (WebCore::GLPlatformSurface::sharedDisplay):
1446         (WebCore::GLPlatformSurface::configuration):
1447         (WebCore::GLPlatformSurface::swapBuffers):
1448         (WebCore::GLPlatformSurface::copyTexture):
1449         (WebCore::GLPlatformSurface::updateContents):
1450         (WebCore::GLPlatformSurface::setGeometry):
1451         (WebCore::GLPlatformSurface::destroy):
1452         * platform/graphics/opengl/GLPlatformSurface.h: Added.
1453         (WebCore):
1454         (GLPlatformSurface):
1455             GLXOffScreenContext creates an off-screen context. This is used when
1456             renderstyle is RenderOffscreen.
1457             It uses GL extension GLX_ARB_create_context (when available)
1458             to create a context else falls back to use glXCreateNewContext.
1459         * platform/graphics/surfaces/glx/GLXContext.cpp: Added.
1460         (WebCore):
1461         (WebCore::initializeARBExtensions):
1462         (WebCore::GLXOffScreenContext::GLXOffScreenContext):
1463         (WebCore::GLXOffScreenContext::initialize):
1464         (WebCore::GLXOffScreenContext::~GLXOffScreenContext):
1465         (WebCore::GLXOffScreenContext::isCurrentContext):
1466         (WebCore::GLXOffScreenContext::platformMakeCurrent):
1467         (WebCore::GLXOffScreenContext::platformReleaseCurrent):
1468         (WebCore::GLXOffScreenContext::freeResources):
1469         (WebCore::GLXOffScreenContext::destroy):
1470             GLXCurrentContextWrapper acts as a wrapper for current context.
1471             This is used when renderstyle is RenderToCurrentGLContext.
1472         * platform/graphics/surfaces/glx/GLXContext.h: Added.
1473         (WebCore):
1474         (GLXCurrentContextWrapper):
1475         (WebCore::GLXCurrentContextWrapper::GLXCurrentContextWrapper):
1476         (WebCore::GLXCurrentContextWrapper::~GLXCurrentContextWrapper):
1477         (GLXOffScreenContext):
1478         * platform/graphics/surfaces/glx/GLXSurface.cpp: Added.
1479         (WebCore):
1480         (WebCore::GLXSurface::GLXSurface):
1481         (WebCore::GLXSurface::~GLXSurface):
1482         (WebCore::GLXSurface::visualInfo):
1483         (WebCore::GLXSurface::xWindow):
1484         (WebCore::GLXSurface::pBufferConfiguration):
1485         (WebCore::GLXSurface::transportSurfaceConfiguration):
1486         (WebCore::GLXSurface::isXRenderExtensionSupported):
1487             GLXTransportSurface creates Window and uses it as an off-screen surface.
1488             Any GLContext that was created with respect to configuration can be used
1489             to render into this.
1490             This is used when contents of the buffer are to be provided to UI Process
1491             for display.
1492         (WebCore::GLXTransportSurface::GLXTransportSurface):
1493         (WebCore::GLXTransportSurface::~GLXTransportSurface):
1494         (WebCore::GLXTransportSurface::configuration):
1495         (WebCore::GLXTransportSurface::swapBuffers):
1496         (WebCore::GLXTransportSurface::setGeometry):
1497         (WebCore::GLXTransportSurface::initialize):
1498         (WebCore::GLXTransportSurface::destroy):
1499         (WebCore::GLXTransportSurface::freeResources):
1500            GLXPBuffer, Creates a GL surface (PBuffer) used for offscreen rendering.
1501            Any GLContext that was created with respect to configuration can be used
1502            to render into this.
1503         (WebCore::GLXPBuffer::GLXPBuffer):
1504         (WebCore::GLXPBuffer::~GLXPBuffer):
1505         (WebCore::GLXPBuffer::initialize):
1506         (WebCore::GLXPBuffer::configuration):
1507         (WebCore::GLXPBuffer::destroy):
1508         (WebCore::GLXPBuffer::freeResources):
1509         * platform/graphics/surfaces/glx/GLXSurface.h: Added.
1510         (WebCore):
1511             Creates X resources which are shared between surface and context.
1512         (SharedX11Resources):
1513         (WebCore::SharedX11Resources::create):
1514         (WebCore::SharedX11Resources::deref):
1515         (WebCore::SharedX11Resources::getXWindow):
1516         (WebCore::SharedX11Resources::display):
1517         (WebCore::SharedX11Resources::visualInfo):
1518         (WebCore::SharedX11Resources::createConfig):
1519         (WebCore::SharedX11Resources::pBufferContextConfig):
1520         (WebCore::SharedX11Resources::surfaceContextConfig):
1521         (WebCore::SharedX11Resources::isXRenderExtensionSupported):
1522         (WebCore::SharedX11Resources::SharedX11Resources):
1523         (WebCore::SharedX11Resources::~SharedX11Resources):
1524         (GLXSurface):
1525         (GLXTransportSurface):
1526         (GLXPBuffer):
1527
1528 2012-11-18  Andreas Kling  <akling@apple.com>
1529
1530         Element::parseAttribute() should take name & value as separate arguments.
1531         <http://webkit.org/b/102608>
1532
1533         Reviewed by Antti Koivisto.
1534
1535         Update the signature of parseAttribute() to take a QualifiedName/AtomicString combo instead
1536         of an Attribute. This lets us pass avoid refcount churn in Element::attributeChanged() since
1537         creating a temporary Attribute is no longer necessary.
1538
1539         This was surprisingly hot (~1%) on the DOM/CreateNodes performance test.
1540
1541         * bindings/js/ScriptEventListener.cpp:
1542         (WebCore::createAttributeEventListener):
1543         * bindings/js/ScriptEventListener.h:
1544         (WebCore):
1545         * bindings/v8/ScriptEventListener.cpp:
1546         (WebCore::createAttributeEventListener):
1547         * bindings/v8/ScriptEventListener.h:
1548         (WebCore):
1549         * dom/Element.cpp:
1550         (WebCore::Element::attributeChanged):
1551         (WebCore::Element::parseAttribute):
1552         * dom/Element.h:
1553         (Element):
1554         * dom/StyledElement.cpp:
1555         (WebCore::StyledElement::parseAttribute):
1556         * dom/StyledElement.h:
1557         (StyledElement):
1558         * html/HTMLAnchorElement.cpp:
1559         (WebCore::HTMLAnchorElement::parseAttribute):
1560         * html/HTMLAnchorElement.h:
1561         (HTMLAnchorElement):
1562         * html/HTMLAppletElement.cpp:
1563         (WebCore::HTMLAppletElement::parseAttribute):
1564         * html/HTMLAppletElement.h:
1565         (HTMLAppletElement):
1566         * html/HTMLAreaElement.cpp:
1567         (WebCore::HTMLAreaElement::parseAttribute):
1568         * html/HTMLAreaElement.h:
1569         (HTMLAreaElement):
1570         * html/HTMLBaseElement.cpp:
1571         (WebCore::HTMLBaseElement::parseAttribute):
1572         * html/HTMLBaseElement.h:
1573         (HTMLBaseElement):
1574         * html/HTMLBodyElement.cpp:
1575         (WebCore::HTMLBodyElement::parseAttribute):
1576         * html/HTMLBodyElement.h:
1577         (HTMLBodyElement):
1578         * html/HTMLButtonElement.cpp:
1579         (WebCore::HTMLButtonElement::parseAttribute):
1580         * html/HTMLButtonElement.h:
1581         * html/HTMLCanvasElement.cpp:
1582         (WebCore::HTMLCanvasElement::parseAttribute):
1583         * html/HTMLCanvasElement.h:
1584         (HTMLCanvasElement):
1585         * html/HTMLDetailsElement.cpp:
1586         (WebCore::HTMLDetailsElement::parseAttribute):
1587         * html/HTMLDetailsElement.h:
1588         (HTMLDetailsElement):
1589         * html/HTMLElement.cpp:
1590         (WebCore::HTMLElement::parseAttribute):
1591         (WebCore::HTMLElement::dirAttributeChanged):
1592         * html/HTMLElement.h:
1593         (HTMLElement):
1594         * html/HTMLEmbedElement.cpp:
1595         (WebCore::HTMLEmbedElement::parseAttribute):
1596         * html/HTMLEmbedElement.h:
1597         (HTMLEmbedElement):
1598         * html/HTMLFormControlElement.cpp:
1599         (WebCore::HTMLFormControlElement::parseAttribute):
1600         * html/HTMLFormControlElement.h:
1601         (HTMLFormControlElement):
1602         * html/HTMLFormElement.cpp:
1603         (WebCore::HTMLFormElement::parseAttribute):
1604         * html/HTMLFormElement.h:
1605         (HTMLFormElement):
1606         * html/HTMLFrameElement.cpp:
1607         (WebCore::HTMLFrameElement::parseAttribute):
1608         * html/HTMLFrameElement.h:
1609         (HTMLFrameElement):
1610         * html/HTMLFrameElementBase.cpp:
1611         (WebCore::HTMLFrameElementBase::parseAttribute):
1612         * html/HTMLFrameElementBase.h:
1613         (HTMLFrameElementBase):
1614         * html/HTMLFrameSetElement.cpp:
1615         (WebCore::HTMLFrameSetElement::parseAttribute):
1616         * html/HTMLFrameSetElement.h:
1617         (HTMLFrameSetElement):
1618         * html/HTMLIFrameElement.cpp:
1619         (WebCore::HTMLIFrameElement::parseAttribute):
1620         * html/HTMLIFrameElement.h:
1621         (HTMLIFrameElement):
1622         * html/HTMLImageElement.cpp:
1623         (WebCore::HTMLImageElement::parseAttribute):
1624         * html/HTMLImageElement.h:
1625         (HTMLImageElement):
1626         * html/HTMLInputElement.cpp:
1627         (WebCore::HTMLInputElement::parseAttribute):
1628         (WebCore::HTMLInputElement::parseMaxLengthAttribute):
1629         * html/HTMLInputElement.h:
1630         (HTMLInputElement):
1631         * html/HTMLKeygenElement.cpp:
1632         (WebCore::HTMLKeygenElement::parseAttribute):
1633         * html/HTMLKeygenElement.h:
1634         (HTMLKeygenElement):
1635         * html/HTMLLIElement.cpp:
1636         (WebCore::HTMLLIElement::parseAttribute):
1637         * html/HTMLLIElement.h:
1638         (HTMLLIElement):
1639         * html/HTMLLinkElement.cpp:
1640         (WebCore::HTMLLinkElement::parseAttribute):
1641         * html/HTMLLinkElement.h:
1642         (HTMLLinkElement):
1643         * html/HTMLMapElement.cpp:
1644         (WebCore::HTMLMapElement::parseAttribute):
1645         * html/HTMLMapElement.h:
1646         (HTMLMapElement):
1647         * html/HTMLMediaElement.cpp:
1648         (WebCore::HTMLMediaElement::parseAttribute):
1649         * html/HTMLMediaElement.h:
1650         * html/HTMLMetaElement.cpp:
1651         (WebCore::HTMLMetaElement::parseAttribute):
1652         * html/HTMLMetaElement.h:
1653         (HTMLMetaElement):
1654         * html/HTMLMeterElement.cpp:
1655         (WebCore::HTMLMeterElement::parseAttribute):
1656         * html/HTMLMeterElement.h:
1657         (HTMLMeterElement):
1658         * html/HTMLOListElement.cpp:
1659         (WebCore::HTMLOListElement::parseAttribute):
1660         * html/HTMLOListElement.h:
1661         (HTMLOListElement):
1662         * html/HTMLObjectElement.cpp:
1663         (WebCore::HTMLObjectElement::parseAttribute):
1664         * html/HTMLObjectElement.h:
1665         (HTMLObjectElement):
1666         * html/HTMLOptGroupElement.cpp:
1667         (WebCore::HTMLOptGroupElement::parseAttribute):
1668         * html/HTMLOptGroupElement.h:
1669         * html/HTMLOptionElement.cpp:
1670         (WebCore::HTMLOptionElement::parseAttribute):
1671         * html/HTMLOptionElement.h:
1672         (HTMLOptionElement):
1673         * html/HTMLOutputElement.cpp:
1674         (WebCore::HTMLOutputElement::parseAttribute):
1675         * html/HTMLOutputElement.h:
1676         (HTMLOutputElement):
1677         * html/HTMLProgressElement.cpp:
1678         (WebCore::HTMLProgressElement::parseAttribute):
1679         * html/HTMLProgressElement.h:
1680         * html/HTMLScriptElement.cpp:
1681         (WebCore::HTMLScriptElement::parseAttribute):
1682         * html/HTMLScriptElement.h:
1683         (HTMLScriptElement):
1684         * html/HTMLSelectElement.cpp:
1685         (WebCore::HTMLSelectElement::parseAttribute):
1686         (WebCore::HTMLSelectElement::parseMultipleAttribute):
1687         * html/HTMLSelectElement.h:
1688         * html/HTMLStyleElement.cpp:
1689         (WebCore::HTMLStyleElement::parseAttribute):
1690         * html/HTMLStyleElement.h:
1691         (HTMLStyleElement):
1692         * html/HTMLTableCellElement.cpp:
1693         (WebCore::HTMLTableCellElement::parseAttribute):
1694         * html/HTMLTableCellElement.h:
1695         (HTMLTableCellElement):
1696         * html/HTMLTableColElement.cpp:
1697         (WebCore::HTMLTableColElement::parseAttribute):
1698         * html/HTMLTableColElement.h:
1699         (HTMLTableColElement):
1700         * html/HTMLTableElement.cpp:
1701         (WebCore::HTMLTableElement::parseAttribute):
1702         * html/HTMLTableElement.h:
1703         (HTMLTableElement):
1704         * html/HTMLTextAreaElement.cpp:
1705         (WebCore::HTMLTextAreaElement::parseAttribute):
1706         * html/HTMLTextAreaElement.h:
1707         (HTMLTextAreaElement):
1708         * html/HTMLTextFormControlElement.cpp:
1709         (WebCore::HTMLTextFormControlElement::parseAttribute):
1710         * html/HTMLTextFormControlElement.h:
1711         (HTMLTextFormControlElement):
1712         * html/HTMLTrackElement.cpp:
1713         (WebCore::HTMLTrackElement::parseAttribute):
1714         * html/HTMLTrackElement.h:
1715         (HTMLTrackElement):
1716         * html/HTMLVideoElement.cpp:
1717         (WebCore::HTMLVideoElement::parseAttribute):
1718         * html/HTMLVideoElement.h:
1719         (HTMLVideoElement):
1720         * html/shadow/HTMLContentElement.cpp:
1721         (WebCore::HTMLContentElement::parseAttribute):
1722         * html/shadow/HTMLContentElement.h:
1723         (HTMLContentElement):
1724         * mathml/MathMLElement.cpp:
1725         (WebCore::MathMLElement::parseAttribute):
1726         * mathml/MathMLElement.h:
1727         (MathMLElement):
1728         * svg/SVGAElement.cpp:
1729         (WebCore::SVGAElement::parseAttribute):
1730         * svg/SVGAElement.h:
1731         (SVGAElement):
1732         * svg/SVGAnimateMotionElement.cpp:
1733         (WebCore::SVGAnimateMotionElement::parseAttribute):
1734         * svg/SVGAnimateMotionElement.h:
1735         (SVGAnimateMotionElement):
1736         * svg/SVGAnimateTransformElement.cpp:
1737         (WebCore::SVGAnimateTransformElement::parseAttribute):
1738         * svg/SVGAnimateTransformElement.h:
1739         (SVGAnimateTransformElement):
1740         * svg/SVGAnimationElement.cpp:
1741         (WebCore::SVGAnimationElement::parseAttribute):
1742         * svg/SVGAnimationElement.h:
1743         (SVGAnimationElement):
1744         * svg/SVGCircleElement.cpp:
1745         (WebCore::SVGCircleElement::parseAttribute):
1746         * svg/SVGCircleElement.h:
1747         (SVGCircleElement):
1748         * svg/SVGClipPathElement.cpp:
1749         (WebCore::SVGClipPathElement::parseAttribute):
1750         * svg/SVGClipPathElement.h:
1751         (SVGClipPathElement):
1752         * svg/SVGComponentTransferFunctionElement.cpp:
1753         (WebCore::SVGComponentTransferFunctionElement::parseAttribute):
1754         * svg/SVGComponentTransferFunctionElement.h:
1755         (SVGComponentTransferFunctionElement):
1756         * svg/SVGCursorElement.cpp:
1757         (WebCore::SVGCursorElement::parseAttribute):
1758         * svg/SVGCursorElement.h:
1759         (SVGCursorElement):
1760         * svg/SVGElement.cpp:
1761         (WebCore::SVGElement::reportAttributeParsingError):
1762         (WebCore::SVGElement::parseAttribute):
1763         * svg/SVGElement.h:
1764         (SVGElement):
1765         * svg/SVGEllipseElement.cpp:
1766         (WebCore::SVGEllipseElement::parseAttribute):
1767         * svg/SVGEllipseElement.h:
1768         (SVGEllipseElement):
1769         * svg/SVGExternalResourcesRequired.cpp:
1770         (WebCore::SVGExternalResourcesRequired::parseAttribute):
1771         * svg/SVGExternalResourcesRequired.h:
1772         (SVGExternalResourcesRequired):
1773         * svg/SVGFEBlendElement.cpp:
1774         (WebCore::SVGFEBlendElement::parseAttribute):
1775         * svg/SVGFEBlendElement.h:
1776         (SVGFEBlendElement):
1777         * svg/SVGFEColorMatrixElement.cpp:
1778         (WebCore::SVGFEColorMatrixElement::parseAttribute):
1779         * svg/SVGFEColorMatrixElement.h:
1780         (SVGFEColorMatrixElement):
1781         * svg/SVGFEComponentTransferElement.cpp:
1782         (WebCore::SVGFEComponentTransferElement::parseAttribute):
1783         * svg/SVGFEComponentTransferElement.h:
1784         (SVGFEComponentTransferElement):
1785         * svg/SVGFECompositeElement.cpp:
1786         (WebCore::SVGFECompositeElement::parseAttribute):
1787         * svg/SVGFECompositeElement.h:
1788         (SVGFECompositeElement):
1789         * svg/SVGFEConvolveMatrixElement.cpp:
1790         (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
1791         * svg/SVGFEConvolveMatrixElement.h:
1792         (SVGFEConvolveMatrixElement):
1793         * svg/SVGFEDiffuseLightingElement.cpp:
1794         (WebCore::SVGFEDiffuseLightingElement::parseAttribute):
1795         * svg/SVGFEDiffuseLightingElement.h:
1796         (SVGFEDiffuseLightingElement):
1797         * svg/SVGFEDisplacementMapElement.cpp:
1798         (WebCore::SVGFEDisplacementMapElement::parseAttribute):
1799         * svg/SVGFEDisplacementMapElement.h:
1800         (SVGFEDisplacementMapElement):
1801         * svg/SVGFEDropShadowElement.cpp:
1802         (WebCore::SVGFEDropShadowElement::parseAttribute):
1803         * svg/SVGFEDropShadowElement.h:
1804         (SVGFEDropShadowElement):
1805         * svg/SVGFEGaussianBlurElement.cpp:
1806         (WebCore::SVGFEGaussianBlurElement::parseAttribute):
1807         * svg/SVGFEGaussianBlurElement.h:
1808         (SVGFEGaussianBlurElement):
1809         * svg/SVGFEImageElement.cpp:
1810         (WebCore::SVGFEImageElement::parseAttribute):
1811         * svg/SVGFEImageElement.h:
1812         (SVGFEImageElement):
1813         * svg/SVGFELightElement.cpp:
1814         (WebCore::SVGFELightElement::parseAttribute):
1815         * svg/SVGFELightElement.h:
1816         (SVGFELightElement):
1817         * svg/SVGFEMergeNodeElement.cpp:
1818         (WebCore::SVGFEMergeNodeElement::parseAttribute):
1819         * svg/SVGFEMergeNodeElement.h:
1820         (SVGFEMergeNodeElement):
1821         * svg/SVGFEMorphologyElement.cpp:
1822         (WebCore::SVGFEMorphologyElement::parseAttribute):
1823         * svg/SVGFEMorphologyElement.h:
1824         (SVGFEMorphologyElement):
1825         * svg/SVGFEOffsetElement.cpp:
1826         (WebCore::SVGFEOffsetElement::parseAttribute):
1827         * svg/SVGFEOffsetElement.h:
1828         (SVGFEOffsetElement):
1829         * svg/SVGFESpecularLightingElement.cpp:
1830         (WebCore::SVGFESpecularLightingElement::parseAttribute):
1831         * svg/SVGFESpecularLightingElement.h:
1832         (SVGFESpecularLightingElement):
1833         * svg/SVGFETileElement.cpp:
1834         (WebCore::SVGFETileElement::parseAttribute):
1835         * svg/SVGFETileElement.h:
1836         (SVGFETileElement):
1837         * svg/SVGFETurbulenceElement.cpp:
1838         (WebCore::SVGFETurbulenceElement::parseAttribute):
1839         * svg/SVGFETurbulenceElement.h:
1840         (SVGFETurbulenceElement):
1841         * svg/SVGFilterElement.cpp:
1842         (WebCore::SVGFilterElement::parseAttribute):
1843         * svg/SVGFilterElement.h:
1844         (SVGFilterElement):
1845         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
1846         (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
1847         * svg/SVGFilterPrimitiveStandardAttributes.h:
1848         (SVGFilterPrimitiveStandardAttributes):
1849         * svg/SVGFitToViewBox.h:
1850         (WebCore::SVGFitToViewBox::parseAttribute):
1851         * svg/SVGFontFaceElement.cpp:
1852         (WebCore::SVGFontFaceElement::parseAttribute):
1853         * svg/SVGFontFaceElement.h:
1854         (SVGFontFaceElement):
1855         * svg/SVGFontFaceUriElement.cpp:
1856         (WebCore::SVGFontFaceUriElement::parseAttribute):
1857         * svg/SVGFontFaceUriElement.h:
1858         (SVGFontFaceUriElement):
1859         * svg/SVGForeignObjectElement.cpp:
1860         (WebCore::SVGForeignObjectElement::parseAttribute):
1861         * svg/SVGForeignObjectElement.h:
1862         (SVGForeignObjectElement):
1863         * svg/SVGGElement.cpp:
1864         (WebCore::SVGGElement::parseAttribute):
1865         * svg/SVGGElement.h:
1866         (SVGGElement):
1867         * svg/SVGGlyphElement.cpp:
1868         (WebCore::SVGGlyphElement::parseAttribute):
1869         * svg/SVGGlyphElement.h:
1870         (SVGGlyphElement):
1871         * svg/SVGGlyphRefElement.cpp:
1872         (WebCore::SVGGlyphRefElement::parseAttribute):
1873         * svg/SVGGlyphRefElement.h:
1874         * svg/SVGGradientElement.cpp:
1875         (WebCore::SVGGradientElement::parseAttribute):
1876         * svg/SVGGradientElement.h:
1877         * svg/SVGImageElement.cpp:
1878         (WebCore::SVGImageElement::parseAttribute):
1879         * svg/SVGImageElement.h:
1880         (SVGImageElement):
1881         * svg/SVGLangSpace.cpp:
1882         (WebCore::SVGLangSpace::parseAttribute):
1883         * svg/SVGLangSpace.h:
1884         (SVGLangSpace):
1885         * svg/SVGLineElement.cpp:
1886         (WebCore::SVGLineElement::parseAttribute):
1887         * svg/SVGLineElement.h:
1888         (SVGLineElement):
1889         * svg/SVGLinearGradientElement.cpp:
1890         (WebCore::SVGLinearGradientElement::parseAttribute):
1891         * svg/SVGLinearGradientElement.h:
1892         (SVGLinearGradientElement):
1893         * svg/SVGMPathElement.cpp:
1894         (WebCore::SVGMPathElement::parseAttribute):
1895         * svg/SVGMPathElement.h:
1896         (SVGMPathElement):
1897         * svg/SVGMarkerElement.cpp:
1898         (WebCore::SVGMarkerElement::parseAttribute):
1899         * svg/SVGMarkerElement.h:
1900         (SVGMarkerElement):
1901         * svg/SVGMaskElement.cpp:
1902         (WebCore::SVGMaskElement::parseAttribute):
1903         * svg/SVGMaskElement.h:
1904         (SVGMaskElement):
1905         * svg/SVGPathElement.cpp:
1906         (WebCore::SVGPathElement::parseAttribute):
1907         * svg/SVGPathElement.h:
1908         (SVGPathElement):
1909         * svg/SVGPatternElement.cpp:
1910         (WebCore::SVGPatternElement::parseAttribute):
1911         * svg/SVGPatternElement.h:
1912         (SVGPatternElement):
1913         * svg/SVGPolyElement.cpp:
1914         (WebCore::SVGPolyElement::parseAttribute):
1915         * svg/SVGPolyElement.h:
1916         (SVGPolyElement):
1917         * svg/SVGRadialGradientElement.cpp:
1918         (WebCore::SVGRadialGradientElement::parseAttribute):
1919         * svg/SVGRadialGradientElement.h:
1920         (SVGRadialGradientElement):
1921         * svg/SVGRectElement.cpp:
1922         (WebCore::SVGRectElement::parseAttribute):
1923         * svg/SVGRectElement.h:
1924         (SVGRectElement):
1925         * svg/SVGSVGElement.cpp:
1926         (WebCore::SVGSVGElement::parseAttribute):
1927         * svg/SVGSVGElement.h:
1928         (SVGSVGElement):
1929         * svg/SVGScriptElement.cpp:
1930         (WebCore::SVGScriptElement::parseAttribute):
1931         * svg/SVGScriptElement.h:
1932         (SVGScriptElement):
1933         * svg/SVGStopElement.cpp:
1934         (WebCore::SVGStopElement::parseAttribute):
1935         * svg/SVGStopElement.h:
1936         (SVGStopElement):
1937         * svg/SVGStyleElement.cpp:
1938         (WebCore::SVGStyleElement::parseAttribute):
1939         * svg/SVGStyleElement.h:
1940         (SVGStyleElement):
1941         * svg/SVGStyledElement.cpp:
1942         (WebCore::SVGStyledElement::parseAttribute):
1943         * svg/SVGStyledElement.h:
1944         (SVGStyledElement):
1945         * svg/SVGStyledTransformableElement.cpp:
1946         (WebCore::SVGStyledTransformableElement::parseAttribute):
1947         * svg/SVGStyledTransformableElement.h:
1948         (SVGStyledTransformableElement):
1949         * svg/SVGSymbolElement.cpp:
1950         (WebCore::SVGSymbolElement::parseAttribute):
1951         * svg/SVGSymbolElement.h:
1952         (SVGSymbolElement):
1953         * svg/SVGTRefElement.cpp:
1954         (WebCore::SVGTRefElement::parseAttribute):
1955         * svg/SVGTRefElement.h:
1956         (SVGTRefElement):
1957         * svg/SVGTests.cpp:
1958         (WebCore::SVGTests::parseAttribute):
1959         * svg/SVGTests.h:
1960         (SVGTests):
1961         * svg/SVGTextContentElement.cpp:
1962         (WebCore::SVGTextContentElement::parseAttribute):
1963         * svg/SVGTextContentElement.h:
1964         (SVGTextContentElement):
1965         * svg/SVGTextElement.cpp:
1966         (WebCore::SVGTextElement::parseAttribute):
1967         * svg/SVGTextElement.h:
1968         (SVGTextElement):
1969         * svg/SVGTextPathElement.cpp:
1970         (WebCore::SVGTextPathElement::parseAttribute):
1971         * svg/SVGTextPathElement.h:
1972         * svg/SVGTextPositioningElement.cpp:
1973         (WebCore::SVGTextPositioningElement::parseAttribute):
1974         * svg/SVGTextPositioningElement.h:
1975         (SVGTextPositioningElement):
1976         * svg/SVGURIReference.cpp:
1977         (WebCore::SVGURIReference::parseAttribute):
1978         * svg/SVGURIReference.h:
1979         (SVGURIReference):
1980         * svg/SVGUseElement.cpp:
1981         (WebCore::SVGUseElement::parseAttribute):
1982         * svg/SVGUseElement.h:
1983         (SVGUseElement):
1984         * svg/SVGViewElement.cpp:
1985         (WebCore::SVGViewElement::parseAttribute):
1986         * svg/SVGViewElement.h:
1987         (SVGViewElement):
1988         * svg/SVGZoomAndPan.h:
1989         (WebCore::SVGZoomAndPan::parseAttribute):
1990         * svg/animation/SVGSMILElement.cpp:
1991         (WebCore::SVGSMILElement::parseAttribute):
1992         * svg/animation/SVGSMILElement.h:
1993         (SVGSMILElement):
1994
1995 2012-11-18  Andreas Kling  <akling@apple.com>
1996
1997         StyleResolver: No need to compare "cellpadding" attributes when evaluating style sharing candidates.
1998         <http://webkit.org/b/102596>
1999
2000         Reviewed by Antti Koivisto.
2001
2002         Differences in the cellpadding attribute is caught by comparing additionalPresentationAttributeStyle()
2003         later on in canShareStyleWithElement() and we shouldn't waste time on comparing them.
2004
2005         * css/StyleResolver.cpp:
2006         (WebCore::haveIdenticalStyleAffectingAttributes):
2007
2008 2012-11-17  Jon Lee  <jonlee@apple.com>
2009
2010         Simulated mouse events should return an accurate offset
2011         https://bugs.webkit.org/show_bug.cgi?id=102606
2012         <rdar://problem/12725627>
2013
2014         Reviewed by Brady Eidson.
2015
2016         A check to see if the event is simulated prior to calculating the offset has existed for a
2017         long time (since at least r14916). Back then the check was needed because the offset was
2018         incrementally adjusted when the target was assigned (through
2019         MouseRelatedEvent::receivedTarget()).
2020
2021         Since r82225, we started calculating the offset only when needed, and calculating the offset
2022         from scratch rather than incrementally adjusting it. Since we recalculate from scratch,
2023         the isSimulated check is irrelevant, and we should remove it.
2024
2025         Tests are not possible because all uses of simulated mouse events provide no underlying
2026         event, so the offset is never recalculated.
2027
2028         * dom/MouseRelatedEvent.cpp:
2029         (WebCore::MouseRelatedEvent::computeRelativePosition): Remove the m_isSimulated check.
2030
2031 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
2032
2033         Don't say there are dirty overlay scrollbars when they are clipped out
2034         https://bugs.webkit.org/show_bug.cgi?id=102609
2035
2036         Reviewed by Brady Eidson.
2037
2038         Painting overlay scrollbars involves a second painting pass over the entire
2039         RenderLayer subtree for a compositing layer, which can be very expensive.
2040         
2041         Avoid this when possible by detecting when overflow controls are not in
2042         the damage rect.
2043
2044         * rendering/RenderLayer.cpp:
2045         (WebCore::RenderLayer::rectForHorizontalScrollbar): Compute a local rect
2046         for the horizontal scrollbar.
2047         (WebCore::RenderLayer::rectForVerticalScrollbar): Compute a local rect
2048         for the vertical scrollbar.
2049         (WebCore::RenderLayer::positionOverflowControls): Use rectForHorizontalScrollbar()
2050         and rectForVerticalScrollbar().
2051         (WebCore::RenderLayer::overflowControlsIntersectRect): Return true if any
2052         of the present overflow controls intersect the given local rect.
2053         (WebCore::RenderLayer::paintOverflowControls): Bail if the damage rect
2054         doesn't intersect any of the overflow controls.
2055         * rendering/RenderLayer.h:
2056         (RenderLayer):
2057
2058 2012-11-17  Adam Barth  <abarth@webkit.org>
2059
2060         REGRESSION (r133633): ASSERTION FAILED: m_wrapper || !m_jsFunction
2061         https://bugs.webkit.org/show_bug.cgi?id=101428
2062
2063         Reviewed by Geoffrey Garen.
2064
2065         JSNodeOwner has some smarts that wrappers of subclasses of Node need to
2066         call during garbage collection. This patch teaches subclasses of Node
2067         to have their JSMumbleOwner objects inherit from JSNodeOwner.
2068
2069         The immediate benefit of this patch is that we correctly avoid
2070         collecting wrappers for HTMLAudioElements when they are reachable from
2071         the DOM.
2072
2073         * bindings/scripts/CodeGeneratorJS.pm:
2074         (GenerateHeader):
2075         (GenerateImplementation):
2076
2077 2012-11-17  Elliott Sprehn  <esprehn@chromium.org>
2078
2079         Expose JSObject::removeDirect and PrivateName to WebCore
2080         https://bugs.webkit.org/show_bug.cgi?id=102546
2081
2082         Reviewed by Geoffrey Garen.
2083
2084         Add forwarding header for PrivateName, so JSDependentRetained works.
2085
2086         No new tests, just adding headers.
2087
2088         * ForwardingHeaders/runtime/PrivateName.h: Added.
2089
2090 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
2091
2092         Reduce the crazy number of parameters to RenderLayer clip-rect functions
2093         https://bugs.webkit.org/show_bug.cgi?id=102604
2094
2095         Reviewed by Dan Bernstein.
2096
2097         Many of the RenderLayer member functions related to clip rect computation
2098         took a long list of similar parameters. Gather these into a struct, ClipRectsContext,
2099         that we pass to these functions
2100         
2101         No functional changes.
2102
2103         * rendering/RenderLayer.cpp:
2104         (WebCore::RenderLayer::paintLayer):
2105         (WebCore::RenderLayer::paintLayerContents):
2106         (WebCore::RenderLayer::hitTestLayer):
2107         (WebCore::RenderLayer::updateClipRects):
2108         (WebCore::RenderLayer::calculateClipRects):
2109         (WebCore::RenderLayer::parentClipRects):
2110         (WebCore::RenderLayer::backgroundClipRect):
2111         (WebCore::RenderLayer::calculateRects):
2112         (WebCore::RenderLayer::childrenClipRect):
2113         (WebCore::RenderLayer::selfClipRect):
2114         (WebCore::RenderLayer::localClipRect):
2115         * rendering/RenderLayer.h:
2116         (WebCore::RenderLayer::ClipRectsContext::ClipRectsContext):
2117         (ClipRectsContext):
2118         (RenderLayer):
2119         (WebCore::RenderLayer::clipRects):
2120         * rendering/RenderLayerBacking.cpp:
2121         (WebCore::RenderLayerBacking::updateCompositedBounds):
2122         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2123         * rendering/RenderLayerCompositor.cpp:
2124         (WebCore::RenderLayerCompositor::addToOverlapMap):
2125         (WebCore::RenderLayerCompositor::clippedByAncestor):
2126         * rendering/RenderTreeAsText.cpp:
2127         (WebCore::writeLayers):
2128
2129 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
2130
2131         Simplify bounds computation for the RenderView's layer
2132         https://bugs.webkit.org/show_bug.cgi?id=102597
2133
2134         Reviewed by Anders Carlsson.
2135
2136         Computing the bounds of the main layer (that of the RenderView) used to do
2137         a full RenderLayer walk, taking the union of the bounds of all the sublayers,
2138         which is very expensive on large pages.
2139         
2140         For the RenderView we can avoid that entirely and just use the RenderView's
2141         document rect. Since page scaling happens as a transform on this layer,
2142         we want the unscaled document rect.
2143
2144         * rendering/RenderLayer.cpp:
2145         (WebCore::RenderLayer::calculateLayerBounds):
2146
2147 2012-11-17  Eric Seidel  <eric@webkit.org>
2148
2149         Add ScriptWrappable to more WebCore classes which are commonly JS-wrapped
2150         https://bugs.webkit.org/show_bug.cgi?id=102601
2151
2152         Reviewed by Adam Barth.
2153
2154         From my investigations all of these classes exist only to be exposed
2155         to the web (via JavaScript) and are not used internally by WebCore.
2156         I beleive all of them always have wrappers.
2157         These were found using this code:
2158         https://bugs.webkit.org/show_bug.cgi?id=102539#c2
2159
2160         Geolocation -- navigator.geolocation
2161         WebKitCSSMatrix -- represent matrixes in JS through various APIs
2162         DOMStringMap, NamedNodeMap, NodeIterator, TreeWalker -- exclusively for the DOM API
2163         Blob, FileList - used by the File, Clipboard and XHR, also exclusively as API
2164         ValidityState -- formControl.validity
2165         CanvasRenderingContext -- canvas.getContext()
2166         DOMApplicationCache -- window.appcache
2167         Screen -- window.screen
2168         DOMMimeTypeArray -- navigator.mimetypes
2169         DOMPlugin -- navigator.plugins[0]
2170         DOMPluginArray -- navigator.plugins
2171
2172         * Modules/geolocation/Geolocation.h:
2173         * css/WebKitCSSMatrix.h:
2174         * dom/DOMStringMap.h:
2175         * dom/NamedNodeMap.h:
2176         * dom/NodeIterator.h:
2177         * dom/TreeWalker.h:
2178         * fileapi/Blob.h:
2179         * fileapi/FileList.h: (had to un-indent to make check-webkit-style happy)
2180         (FileList):
2181         (WebCore::FileList::create):
2182         (WebCore::FileList::length):
2183         (WebCore::FileList::isEmpty):
2184         (WebCore::FileList::clear):
2185         (WebCore::FileList::append):
2186         * html/ValidityState.h:
2187         * html/canvas/CanvasRenderingContext.h:
2188         * loader/appcache/DOMApplicationCache.h:
2189         * page/Screen.h:
2190         * platform/graphics/wince/MediaPlayerProxy.cpp:
2191         (WebCore::WebMediaPlayerProxy::initEngine): This code was wrong, fixed to use internal APIs.
2192         * plugins/DOMMimeTypeArray.h:
2193         * plugins/DOMPlugin.h:
2194         * plugins/DOMPluginArray.h:
2195
2196 2012-11-17  Alexandru Chiculita  <achicu@adobe.com>
2197
2198         [Texmap][CSS Shaders] Reuse the precompiled shader for custom filters in TextureMapperGL
2199         https://bugs.webkit.org/show_bug.cgi?id=101801
2200
2201         Reviewed by Noam Rosenthal.
2202
2203         Added a HashMap in TextureMapperGL to store the precompiled versions of the shaders.
2204         Also added a new API on TextureMapper that receives a notification when the shader
2205         is no longer needed.
2206
2207         No new tests, the code is tested by existing tests.
2208
2209         * platform/graphics/filters/CustomFilterOperation.h:
2210         (WebCore::CustomFilterOperation::setProgram):
2211         (CustomFilterOperation): Made the constructor protected, so that we can overwrite the class in WK2.
2212         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
2213         (WebCore::CustomFilterValidatedProgram::validatedProgramInfo):
2214         (WebCore):
2215         * platform/graphics/filters/CustomFilterValidatedProgram.h:
2216         (CustomFilterValidatedProgram):
2217         * platform/graphics/texmap/TextureMapper.h:
2218         (WebCore):
2219         (TextureMapper):
2220         (WebCore::TextureMapper::removeCachedCustomFilterProgram):
2221         Function to be called by the platform code, when the shader is no longer
2222         needed. This implementation is empty and overridden in TextureMapperGL.
2223         * platform/graphics/texmap/TextureMapperGL.cpp:
2224         (WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
2225         Removes the compiled shader from the cache. This is called from WK2 when the compiled shader
2226         is no longer needed.
2227         (WebCore):
2228         (WebCore::TextureMapperGL::drawUsingCustomFilter): The first time it uses a new
2229         shader it will cache the compiled version until removeCachedCustomFilterProgram is called.
2230         * platform/graphics/texmap/TextureMapperGL.h:
2231         (WebCore):
2232         (TextureMapperGL):
2233
2234 2012-11-17  Brady Eidson  <beidson@apple.com>
2235
2236         Add an integer identifier field to AuthenticationChallengeBase.
2237         https://bugs.webkit.org/show_bug.cgi?id=102593
2238
2239         Reviewed by Darin Adler.
2240
2241         This is to support linking two different challenges that might not compare as equal but that 
2242         represent the same logical authentication challenge.
2243
2244         One example is in an IPC environment where the platform challenge can only exist in one process.
2245
2246         No new tests (Platform support, no effect in tested configs).
2247
2248         * WebCore.exp.in:
2249
2250         * platform/network/AuthenticationChallengeBase.cpp:
2251         (WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
2252         * platform/network/AuthenticationChallengeBase.h:
2253         (WebCore::AuthenticationChallengeBase::identifier):
2254
2255         * platform/network/cf/AuthenticationChallenge.h:
2256         * platform/network/mac/AuthenticationMac.mm:
2257         (WebCore::generateUniqueIdentifier):
2258         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
2259           constructing a challenge from an NSURLAuthenticationChallenge.
2260
2261         * platform/network/cf/AuthenticationCF.cpp:
2262         (WebCore::generateUniqueIdentifier):
2263         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
2264           constructing a challenge from a CFURLAuthChallengeRef.
2265
2266         Implement the new constructor form for ports relevant to WebKit2:
2267         * platform/network/qt/AuthenticationChallenge.h:
2268         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
2269         * platform/network/soup/AuthenticationChallenge.h:
2270         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
2271         * platform/network/win/AuthenticationChallenge.h:
2272         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
2273
2274 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
2275
2276         Dump the tile cache extent in layout tests
2277         https://bugs.webkit.org/show_bug.cgi?id=102600
2278
2279         Reviewed by Anders Carlsson.
2280
2281         When dumping tiled layer stats in layout tests, also dump the extent
2282         of the tile grid. This will allow us to detect issues related
2283         to zooming, which is not possible with the existing tile coverage rect,
2284         which is dumped in layer (not tile) coordinates.
2285
2286         * platform/graphics/TiledBacking.h: Added tileGridExtent().
2287         * platform/graphics/ca/GraphicsLayerCA.cpp:
2288         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump the tile grid extent.
2289         * platform/graphics/ca/mac/TileCache.h: tileCoverageRect() should be OVERRIDE.
2290         * platform/graphics/ca/mac/TileCache.mm:
2291         (WebCore::TileCache::getTileIndexRangeForRect):
2292         (WebCore::TileCache::tileGridExtent): Return a rect with the size of
2293         the grid as top,left width,height.
2294
2295 2012-11-17  Andreas Kling  <akling@apple.com>
2296
2297         Avoid full style recalc when 'style' attribute changes.
2298         <http://webkit.org/b/78718>
2299
2300         Reviewed by Anders Carlsson.
2301
2302         Use setNeedsStyleRecalc(InlineStyleChange) when the 'style' attribute changes
2303         to reduce the amount of work done in recalcStyle().
2304
2305         * dom/StyledElement.cpp:
2306         (WebCore::StyledElement::styleAttributeChanged):
2307
2308 2012-11-17  Li Yin  <li.yin@intel.com>
2309
2310         Remove coneGain and distanceGain attributes from PannerNode.idl
2311         https://bugs.webkit.org/show_bug.cgi?id=102343
2312
2313         Reviewed by Chris Rogers.
2314
2315         Removing .coneGain and .distanceGain as publicly accessible values,
2316         since normally they only need to be calculated internally.
2317
2318         No changes to tests, since these attributes were not tested and are being removed.
2319
2320         * Modules/webaudio/PannerNode.idl:
2321
2322 2012-11-17  Balazs Kelemen  <kbalazs@webkit.org>
2323
2324         [Coordinated Graphics] Resumed animations leave an obsolate GraphicsLayerAnimation behind
2325         https://bugs.webkit.org/show_bug.cgi?id=102530
2326
2327         Reviewed by Noam Rosenthal.
2328
2329         GraphicsLayer::addAnimation is called no only when a new animation is created
2330         but also when resuming a paused animation. If this is a resumed animation we
2331         should remove the obsolate GraphicsLayerAnimation object.
2332
2333         Tested by animations tests.
2334
2335         * platform/graphics/GraphicsLayerAnimation.cpp:
2336         (WebCore::GraphicsLayerAnimations::add):
2337
2338 2012-11-17  Martin Robinson  <mrobinson@igalia.com>
2339
2340         [Soup] CredentialStorage should only be used for HTTP-family requests
2341         https://bugs.webkit.org/show_bug.cgi?id=102582
2342
2343         Reviewed by Gustavo Noronha Silva.
2344
2345         Do not use CredentialStorage when handling non-HTTP family requests. CredentialStorage
2346         only expects to handle requests in the HTTP family.
2347
2348         No new tests. This is covered by existing tests.
2349
2350         * platform/network/ResourceHandle.h:
2351         (ResourceHandle): Add a shouldUseCredentialStorage helper to ResourceHandle. This
2352         helper returns false when firstRequest() is a non-HTTP family request.
2353         * platform/network/soup/ResourceHandleSoup.cpp:
2354         (WebCore::applyAuthenticationToRequest): Use the new helper.
2355         (WebCore::createSoupRequestAndMessageForHandle): Ditto.
2356         (WebCore::ResourceHandle::start): Ditto.
2357         (WebCore::ResourceHandle::shouldUseCredentialStorage): Ditto.
2358         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto.
2359         (WebCore::ResourceHandle::receivedCredential): Ditto.
2360
2361 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
2362
2363         Build fix for !USE(ACCELERATED_COMPOSITING) after r135029.
2364
2365         * rendering/RenderLayer.cpp:
2366         (WebCore::RenderLayer::paintOverflowControls):
2367
2368 2012-11-16  Benjamin Poulain  <bpoulain@apple.com>
2369
2370         Improve the performance of rect transform
2371         https://bugs.webkit.org/show_bug.cgi?id=101828
2372
2373         Reviewed by Simon Fraser.
2374
2375         Mapping a rect and a quad by a transform is a common operation because
2376         we use it to recompute the repaint rect, overflow rect, etc.
2377
2378         The way it was done, is by transforming through mapRect()->mapQuad()->4 times mapPoint().
2379         Each of those functions tests isIdentityOrTranslation() which has to read the whole matrix
2380         and perform many comparison.
2381         Because of that, the simple mapping of a rect was loading and checking the matrix 5 times
2382         too many.
2383
2384         This patch just cut the intermediary calls.
2385
2386         On ARM, putting the operation together also has the advantage of loading the matrix
2387         only once in registers and reusing it for every point.
2388
2389         * platform/graphics/transforms/TransformationMatrix.cpp:
2390         (WebCore::TransformationMatrix::mapPoint):
2391         (WebCore::TransformationMatrix::mapRect):
2392         * platform/graphics/transforms/TransformationMatrix.h:
2393         (WebCore):
2394         (WebCore::TransformationMatrix::mapPointImpl): New convenience function to perform the
2395         point project without doing isIdentityOrTranslation().
2396
2397 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
2398
2399         Avoid calling the virtual isBlockFlow() in RenderBox::computeRectForRepaint()
2400         https://bugs.webkit.org/show_bug.cgi?id=102581
2401
2402         Reviewed by Dan Bernstein.
2403
2404         isBlockFlow() is a virtual function call, and shows up in profiles of
2405         Facebook pages as called from RenderBox::computeRectForRepaint().
2406         
2407         It's faster to do the hasColumns() bit-check first. Also replace
2408         a call to layer() with the hasLayer() bit-check.        
2409
2410         * rendering/RenderBox.cpp:
2411         (WebCore::RenderBox::computeRectForRepaint):
2412
2413 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
2414
2415         Unreviewed, rolling out r134817.
2416         http://trac.webkit.org/changeset/134817
2417         https://bugs.webkit.org/show_bug.cgi?id=102576
2418
2419         Broke iframes and causing tons of crashes on ClusterFuzz
2420         (Requested by inferno-sec on #webkit).
2421
2422         * dom/ContainerNode.cpp:
2423         (WebCore::willRemoveChildren):
2424         * dom/ContainerNodeAlgorithms.cpp:
2425         (WebCore::ChildFrameDisconnector::collectDescendant):
2426         * dom/ContainerNodeAlgorithms.h:
2427         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
2428         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
2429         (ChildFrameDisconnector):
2430         (WebCore::ChildFrameDisconnector::collectDescendant):
2431         (WebCore::ChildFrameDisconnector::disconnect):
2432         * dom/Node.cpp:
2433         * dom/Node.h:
2434         (Node):
2435         * dom/NodeRareData.h:
2436         (WebCore::NodeRareData::NodeRareData):
2437         (NodeRareData):
2438         * html/HTMLFrameOwnerElement.cpp:
2439         (WebCore::HTMLFrameOwnerElement::setContentFrame):
2440         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
2441
2442 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
2443
2444         Fix overlay scrollbar painting in compositing layers
2445         https://bugs.webkit.org/show_bug.cgi?id=102442
2446
2447         Reviewed by Beth Dakin.
2448
2449         There were two issues with overlay scrollbar painting in
2450         compositing layers.
2451         
2452         First, we'd only ever call setContainsDirtyOverlayScrollbars()
2453         on the RenderView's layer, even when encountering an overlay scrollbar
2454         in some descendant compositing layer. This meant that we'd never
2455         run the paintOverlayScrollbars() code for those child compositing
2456         layers, so sometimes scrollbars were missing there.
2457         
2458         Even after fixing that, we would fail to render scrollbars that
2459         were not in the composited RenderLayer itself. This happened because
2460         we called into RenderLayer::paintOverlayScrollbars(), which called
2461         paintLayer() with flags that only said to paint the overlay scrollbars
2462         but not any descendants, so this paint path would not walk child
2463         RenderLayers.
2464         
2465         Also remove the containsScrollableAreaWithOverlayScrollbars() flag on
2466         ScrollView which is no longer used.
2467
2468         * platform/ScrollView.cpp:
2469         (WebCore::ScrollView::ScrollView): Remove containsScrollableAreaWithOverlayScrollbars().
2470         (WebCore::ScrollView::paint): Remove setting of m_containsScrollableAreaWithOverlayScrollbars.
2471         * platform/ScrollView.h:
2472         * rendering/RenderLayer.cpp:
2473         (WebCore::RenderLayer::paintOverflowControls): Call setContainsDirtyOverlayScrollbars()
2474         on the compositing ancestor or the root.
2475         Remove call to setContainsScrollableAreaWithOverlayScrollbars().
2476         (WebCore::RenderLayer::paintOverlayScrollbars): When painting overlay
2477         scrollbars, no need to say we have transparency, and no need to use 
2478         temporary clip rects.
2479         (WebCore::RenderLayer::paintLayer): The PaintLayerPaintingOverlayScrollbars
2480         check here was only needed because the compositing entrypoint to painting
2481         overlay scrollbars went via paintLayer(), which isn't normally used as
2482         a composited painting entry point. Now that we no longer call that, we
2483         don't need this special check.
2484         * rendering/RenderLayerBacking.cpp:
2485         (WebCore::RenderLayerBacking::paintIntoLayer): Jump into overlay scrollbar
2486         painting via paintLayerContents(), not paintOverlayScrollbars(), since
2487         the latter does not traverse sublayers.
2488
2489 2012-11-16  Joshua Bell  <jsbell@chromium.org>
2490
2491         IndexedDB: Assert hit when getting non-existent object store in version change transaction
2492         https://bugs.webkit.org/show_bug.cgi?id=102547
2493
2494         Reviewed by Tony Chang.
2495
2496         Code did not account for the not-found case in "versionchange" transactions, where all
2497         object stores are implicitly in scope.
2498
2499         Test: storage/indexeddb/object-lookups-in-versionchange.html
2500
2501         * Modules/indexeddb/IDBTransaction.cpp:
2502         (WebCore::IDBTransaction::objectStore):
2503
2504 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
2505
2506         Eliminate ancestor tree walk computing outlineBoundsForRepaint() when updating layer positions
2507         https://bugs.webkit.org/show_bug.cgi?id=101874
2508
2509         Reviewed by Dave Hyatt.
2510
2511         RenderLayer::updateLayerPositions() and updateLayerPositionsAfterScroll() spend a
2512         lot of time in computeRepaintRects(), which does two ancestor tree walks, once
2513         for clippedOverflowRectForRepaint(), and one for outlineBoundsForRepaint().
2514
2515         Eliminate the ancestor tree walk in outlineBoundsForRepaint() by maintaining
2516         a RenderGeometryMap as we traverse the layer tree, and then using it to map
2517         the outline bounds to the repaint container. Replace the hokey cached offsetFromRoot
2518         now that the RenderGeometryMap can do a better job.
2519         
2520         The clipped overflow rect cannot be mapped simply, so cannot yet make use of
2521         the geometry map.
2522         
2523         Modify the RenderGeometryMap to support mapping to some repaintContainer ancestor.
2524         Add a RenderObject walk that is necessary to detect flipped writing mode blocks.
2525         
2526         Pass the RenderGeometryMap as an optional parameter to outlineBoundsForRepaint.
2527         
2528         * page/FrameView.cpp:
2529         (WebCore::FrameView::layout): Make a RenderGeometryMap and pass it down
2530         to updateLayerPositions(). For partial layouts, we have to push layers
2531         between the root and the enclosing layer of the layout subtree.
2532         The geometry map used for repainting does not use SnapOffsetForTransforms,
2533         so initialize it explicitly with just the UseTransforms flag.
2534         (WebCore::FrameView::repaintFixedElementsAfterScrolling): Make a RenderGeometryMap
2535         to pass along to updateLayerPositionsAfterScroll().
2536         * rendering/RenderBox.cpp:
2537         (WebCore::RenderBox::outlineBoundsForRepaint): Replace the optional cachedOffsetToRepaintContainer
2538         parameter with an optional RenderGeometryMap, and it use to map the compute rect to
2539         repaintContainer coordinates.
2540         * rendering/RenderBox.h:
2541         * rendering/RenderGeometryMap.cpp:
2542         (WebCore::RenderGeometryMap::RenderGeometryMap): This now has to store the mapping
2543         flags to use, so that its behavior can match that of mapLocalToContainer(). The
2544         pertinent flag is the confusingly named SnapOffsetForTransforms.
2545         (WebCore::RenderGeometryMap::absolutePoint): Call the new mapToContainer() with
2546         a null container.
2547         (WebCore::RenderGeometryMap::absoluteRect): Ditto.
2548         (WebCore::RenderGeometryMap::mapToContainer): Map to the supplied container,
2549         asserting that we found it. Add point- and rect-based mapping methods
2550         akin to the old absoluteRect/absolutePoint.
2551         (WebCore::canMapViaLayer): We need to test for isRenderFlowThread() here too.
2552         (WebCore::RenderGeometryMap::pushMappingsToAncestor): When mapping via
2553         layers, ensure that the RenderView is pushed as the first step.
2554         * rendering/RenderGeometryMap.h:
2555         (RenderGeometryMap):
2556         * rendering/RenderLayer.cpp:
2557         (WebCore::RenderLayer::updateLayerPositionsAfterLayout): New wrapper for updateLayerPositions()
2558         that makes the geometry map.
2559         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): New wrapper for updateLayerPositionsAfterScroll
2560         that makes the geometry map.
2561         (WebCore::RenderLayer::updateLayerPositions): Now takes an optional RenderGeometryMap.
2562         Remove the old offsetFromRoot code. Push and pop layers to/from the geometry map. Use
2563         the geometry map to get the offsetFromRoot as needed by overflow controls. Pass
2564         it to computeRepaintRects().
2565         (WebCore::RenderLayer::computeRepaintRects): Pass the geometry map to outlineBoundsForRepaint().
2566         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Push and pop to/from the
2567         geometry map, and pass it to computeRepaintRects().
2568         (WebCore::RenderLayer::removeOnlyThisLayer): Remove the offsetFromRootBeforeMove
2569         computation; this could use a geometry map in future if it is shown to be a bottleneck.
2570         * rendering/RenderLayer.h:
2571         (WebCore::RenderLayer::canUseConvertToLayerCoords): It was thought that the isComposited()
2572         was there because the older cached offsetFromRoot logic was sensitive to compositing,
2573         but convertToLayerCoords() is not affected by compositing so this check is not needed,
2574         and actually harmful.
2575         * rendering/RenderLayerCompositor.cpp:
2576         (WebCore::RenderLayerCompositor::OverlapMap::OverlapMap): The geometry map
2577         used for overlap testing should not use SnapOffsetForTransforms, so initialize
2578         it explicitly with just the UseTransforms flag.
2579         * rendering/RenderObject.h:
2580         (WebCore::RenderObject::outlineBoundsForRepaint):
2581         * rendering/svg/RenderSVGModelObject.cpp:
2582         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
2583         * rendering/svg/RenderSVGModelObject.h:
2584         (RenderSVGModelObject):
2585
2586 2012-11-16  Alec Flett  <alecflett@chromium.org>
2587
2588         Add tests for explicit serialization values
2589         https://bugs.webkit.org/show_bug.cgi?id=96818
2590
2591         Reviewed by Adam Barth.
2592
2593         Expose direct access to the serialization/deserialization mechanisms
2594         of SerializedScriptValue to DumpRenderTree.
2595
2596         * testing/Internals.cpp:
2597         (WebCore::Internals::serializeObject):
2598         (WebCore):
2599         (WebCore::Internals::deserializeBuffer):
2600         * testing/Internals.h:
2601         (WebCore):
2602         * testing/Internals.idl:
2603
2604 2012-11-16  Andreas Kling  <akling@apple.com>
2605
2606         Exploit shared attribute data to avoid parsing identical "style" attributes.
2607         <http://webkit.org/b/101163>
2608
2609         Reviewed by Antti Koivisto.
2610
2611         Track the "inline style dirty" state on ElementAttributeData instead of in a Node flag.
2612         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
2613         since the state is no longer per-Element.
2614
2615         * css/StyleResolver.cpp:
2616         (WebCore::isCacheableInMatchedPropertiesCache):
2617
2618             Disable the matched properties cache for styles with non-standard writing-mode.
2619             This is necessary because some CSS properties have different meaning depending on context -
2620             properties handled by CSSProperty::resolveDirectionAwareProperty().
2621
2622             Now that multiple elements may have identical inlineStyle() pointers, this is necessary to
2623             avoid mapping StylePropertySets with direction-aware properties to RenderStyles with differing
2624             writing-modes in the matched properties cache.
2625
2626         * dom/Node.h:
2627         * dom/ElementAttributeData.cpp:
2628         (WebCore::ElementAttributeData::ElementAttributeData):
2629         * dom/ElementAttributeData.h:
2630         (WebCore::ElementAttributeData::ElementAttributeData):
2631         (ElementAttributeData):
2632         * dom/Element.h:
2633         (WebCore::Element::updateInvalidAttributes):
2634         * dom/Element.cpp:
2635         (WebCore::Element::getAttribute):
2636         (WebCore::Element::removeAttribute):
2637         * dom/StyledElement.h:
2638         (WebCore::StyledElement::invalidateStyleAttribute):
2639         * dom/StyledElement.cpp:
2640         (WebCore::StyledElement::updateStyleAttribute):
2641
2642             Move "style attribute dirty" flag to ElementAttributeData.
2643
2644         (WebCore::Element::cloneAttributesFromElement):
2645
2646             Remove ugly optimization to avoid reparsing inline style when cloning elements. This now happens
2647             automagically since cloning nodes just refs the original attribute data.
2648
2649         * dom/StyledElement.cpp:
2650         (WebCore::StyledElement::updateStyleAttribute):
2651         (WebCore::StyledElement::setInlineStyleFromString):
2652         (WebCore::StyledElement::styleAttributeChanged):
2653         (WebCore::StyledElement::inlineStyleChanged):
2654
2655             Avoid reparsing the inline style if the element's attribute data is immutable and already has
2656             a parsed inlineStyle(). Split the set-inline-style-from-string code out of styleAttributeChanged()
2657             to make the code more understandable.
2658
2659 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
2660
2661         Don't update layer positions on scrolling if we're in the middle of layout
2662         https://bugs.webkit.org/show_bug.cgi?id=102556
2663
2664         Reviewed by Dan Bernstein.
2665
2666         RenderLayer::scrollTo() can be called in the middle of layout. When
2667         that happens we should not waste time updating layer positions,
2668         compositing layers, or widget positions, because we'll do those at the
2669         end of layout anyway.
2670         
2671         This prevents us from having inconsistent RenderLayer state, which
2672         hinders future optimizations in this area.
2673
2674         * rendering/RenderLayer.cpp:
2675         (WebCore::RenderLayer::scrollTo):
2676
2677 2012-11-16  Tony Chang  <tony@chromium.org>
2678
2679         Remove ENABLE_CSS_HIERARCHIES since it's no longer in use
2680         https://bugs.webkit.org/show_bug.cgi?id=102554
2681
2682         Reviewed by Andreas Kling.
2683
2684         As mentioned in https://bugs.webkit.org/show_bug.cgi?id=79939#c41 ,
2685         we're going to revist this feature once additional vendor support is
2686         achieved.
2687
2688         No new tests, just removing an unused define.
2689
2690         * Configurations/FeatureDefines.xcconfig:
2691         * GNUmakefile.features.am:
2692
2693 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
2694
2695         [Chromium] Remove cookie-related functions from PlatformSupport
2696         https://bugs.webkit.org/show_bug.cgi?id=99340
2697
2698         Reviewed by Adam Barth.
2699
2700         Move cookie-related functions out of PlatformSupport and implement
2701         new PlatformCookieJar interface via NetworkContext.
2702
2703         * WebCore.gyp/WebCore.gyp:
2704         * WebCore.gypi:
2705         * loader/CookieJar.cpp:
2706         * loader/chromium/CookieJarChromium.cpp: Removed.
2707         * platform/chromium/PlatformSupport.h:
2708         (WebCore):
2709         (PlatformSupport):
2710         * platform/network/NetworkingContext.h:
2711         (WebKit):
2712         (NetworkingContext):
2713         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
2714         (WebCore::setCookiesFromDOM):
2715         (WebCore::cookiesForDOM):
2716         (WebCore::cookieRequestHeaderFieldValue):
2717         (WebCore::cookiesEnabled):
2718         (WebCore::getRawCookies):
2719         (WebCore::deleteCookie):
2720         (WebCore::getHostnamesWithCookies):
2721         (WebCore::deleteCookiesForHostname):
2722         (WebCore::deleteAllCookies):
2723
2724 2012-11-16  Pablo Flouret  <pablof@motorola.com>
2725
2726         [JSC] Don't sanitize window.onerror information on crossorigin-enabled scripts
2727         https://bugs.webkit.org/show_bug.cgi?id=70574
2728
2729         Reviewed by Geoffrey Garen.
2730
2731         For scripts that use CORS (via the crossorigin attribute in this case),
2732         don't sanitize the information passed to the window's onerror handler (i.e.
2733         message, url, and line number). Useful for scripts hosted on CDNs.
2734
2735         Tests: http/tests/security/script-crossorigin-onerror-information.html
2736                http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html
2737
2738         * WebCore.exp.in:
2739         * WebCore.order:
2740
2741         * bindings/js/JSDOMBinding.cpp:
2742         (WebCore::reportException):
2743         * bindings/js/JSDOMBinding.h:
2744         (WebCore):
2745         * bindings/js/ScriptController.cpp:
2746         (WebCore::ScriptController::evaluateInWorld):
2747         * bindings/js/ScriptSourceCode.h:
2748         (WebCore::ScriptSourceCode::ScriptSourceCode):
2749         (WebCore::ScriptSourceCode::cachedScript):
2750         (ScriptSourceCode):
2751         * bindings/js/WorkerScriptController.cpp:
2752         (WebCore::WorkerScriptController::evaluate):
2753             Keep a reference to the cached script in the ScriptSourceCode, so
2754             that it can be passed around and be available when reporting the
2755             exception.
2756
2757         * dom/ScriptExecutionContext.cpp:
2758         (WebCore::ScriptExecutionContext::sanitizeScriptError):
2759         (WebCore::ScriptExecutionContext::reportException):
2760         (WebCore::ScriptExecutionContext::dispatchErrorEvent):
2761         * dom/ScriptExecutionContext.h:
2762         (WebCore):
2763         (ScriptExecutionContext):
2764             Check if the script passes the access control checks, and if so,
2765             don't sanitize the error information.
2766
2767         * html/parser/HTMLPreloadScanner.cpp:
2768         (WebCore::PreloadTask::processAttributes):
2769         (WebCore::PreloadTask::preload):
2770         (PreloadTask):
2771         (WebCore::PreloadTask::crossOriginModeAllowsCookies):
2772             When preloading script elements, check for the crossorigin attribute
2773             and adjust the request's allowCookies value accordingly. Otherwise
2774             when the script is loaded from the cache later on, the cross origin mode
2775             (anonymous/use-credentials) will be effectively ignored.
2776
2777 2012-11-16  Jon Lee  <jonlee@apple.com>
2778
2779         Change visual look of placeholder
2780         https://bugs.webkit.org/show_bug.cgi?id=102149
2781         <rdar://problem/12695566>
2782
2783         Reviewed by Darin Adler.
2784
2785         Move the button to the lower-right corner. Move the theming into
2786         RenderSnapshottedPlugin for now. Eventually we will want to migrate to using the
2787         shadow DOM instead, and the metrics of the button are needed for click passthrough.
2788
2789         * Resources/startButton.png: Added.
2790         * Resources/startButton@2x.png: Added.
2791         * Resources/startButtonPressed.png: Added.
2792         * Resources/startButtonPressed@2x.png: Added.
2793         * WebCore.xcodeproj/project.pbxproj: Add button images.
2794
2795         Maintain variables to track whether the mouse is over the button, and the rect
2796         for the button. If the user clicks in the rect, we render a pressed button.
2797         * rendering/RenderSnapshottedPlugIn.cpp:
2798         (WebCore): Add named constant for bottom and right padding of the button.
2799         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
2800         (WebCore::RenderSnapshottedPlugIn::paintReplaced):
2801         (WebCore::startButtonImage): Returns button image.
2802         (WebCore::startButtonPressedImage): Returns pressed button image.
2803         (WebCore::RenderSnapshottedPlugIn::paintButton): Draw the button image in the
2804         lower right hand corner, but only if we are active or hovered.
2805         (WebCore::RenderSnapshottedPlugIn::repaintButton): Stubbed to call repaint().
2806         (WebCore::RenderSnapshottedPlugIn::handleEvent): Repaint the button if we are
2807         hovering over the plugin rect. With a mouse down event, calculate whether the
2808         mouse position is within the button rect.
2809         (WebCore::RenderSnapshottedPlugIn::layout): Cache the rect representing the button
2810         contents.
2811         * rendering/RenderSnapshottedPlugIn.h:
2812
2813         Remove theming function for now.
2814         * rendering/RenderTheme.h:
2815         (RenderTheme):
2816         * rendering/RenderThemeMacShared.h:
2817         * rendering/RenderThemeMacShared.mm:
2818
2819 2012-11-16  Eric Seidel  <eric@webkit.org>
2820
2821         Deploy ScriptWrappable to more always-wrapped objects
2822         https://bugs.webkit.org/show_bug.cgi?id=102539
2823
2824         Reviewed by Adam Barth.
2825
2826         Add the ScriptWrappable baseclass to:
2827         CSSStyleDeclaration (anttik tells me these should only be used from JS, even though some old Editing code used to use them)
2828         ClientRect (element.getBoundingClientRects)
2829         Event (Not all events end up wrapped, but any which live past dispatch do)
2830         NodeList (this covers Static and Dynamic node list types, like document.all)
2831         HTMLCollection (separate from NodeList, for things like table.rows)
2832         Storage (for window.storage, always wrapped)
2833         XMLHttpRequest (always wrapped, created from JS)
2834
2835         This should be a small memory savings as the inline pointer is only 4-8 bytes
2836         instead of the hashmap entry which would be 8-16.  This may also show up
2837         on benchmarks which repeatedly access these objects (like window.storage).
2838
2839         These were found by adding a couple lines of logging-code to
2840         WebCore::createWrapper when we were in the main world, but took the
2841         HashMap (instead of inline) storage path. I used sort and uniq -c
2842         to find the most-frequently wrapped objects (while surfing
2843         a few common sites) and came up with this list.  There are still a few
2844         more complicated objects (like CSSStyleDeclaration) which may benifit
2845         from inline-wrapper-access and will be covered in a later patch.
2846
2847         * css/CSSStyleDeclaration.h:
2848         * dom/ClientRect.h:
2849         * dom/Event.h:
2850         * dom/NodeList.h:
2851         * html/HTMLCollection.h:
2852         * storage/Storage.h:
2853         * xml/XMLHttpRequest.h:
2854
2855 2012-11-16  Jon Lee  <jonlee@apple.com>
2856
2857         Simulated events instances do not all have the same underlying event
2858         https://bugs.webkit.org/show_bug.cgi?id=102468
2859         <rdar://problem/12716331>
2860
2861         Reviewed by Alexey Proskuryakov.
2862
2863         The PassRefPtr with the underlying event is included as an argument for the mouse
2864         down, up, and click events. But the PassRefPtr loses its underlying pointer after
2865         the first simulated mouse down event because it gets assigned to that event's
2866         private m_underlyingEvent variable. We therefore send NULL to the other events.
2867
2868         The fix is for this and related functions to pass the raw pointer.
2869
2870         A layout test is not possible to put together because the call sites that use simulated
2871         events with an underlying event do not send mouse events, and those that send mouse
2872         events have a NULL underlying event.
2873
2874         * dom/EventDispatcher.cpp:
2875         (WebCore::EventDispatcher::dispatchSimulatedClick): Require passing in the raw pointer.
2876         * dom/EventDispatcher.h:
2877         * dom/Node.cpp:
2878         (WebCore::Node::dispatchSimulatedClick): Ditto.
2879         * dom/Node.h:
2880
2881 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
2882
2883         Build fix for WinCE after r134936.
2884
2885         * platform/network/win/CookieJarWin.cpp:
2886         (WebCore::cookieRequestHeaderFieldValue):
2887
2888 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
2889
2890         Unreviewed, rolling out r134986.
2891         http://trac.webkit.org/changeset/134986
2892         https://bugs.webkit.org/show_bug.cgi?id=102110
2893
2894         Triggered ASSERT in fast/frames/seamless/seamless-inherited-
2895         origin.html.
2896
2897         * css/StyleResolver.cpp:
2898         (WebCore::StyleResolver::StyleResolver):
2899         (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
2900         (WebCore::collectCSSOMWrappers):
2901         * css/StyleResolver.h:
2902         (StyleResolver):
2903         * dom/Document.cpp:
2904         (WebCore::Document::setCompatibilityMode):
2905         * dom/DocumentStyleSheetCollection.cpp:
2906         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
2907         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
2908         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
2909         (WebCore):
2910         (WebCore::DocumentStyleSheetCollection::clearPageGroupUserSheets):
2911         (WebCore::DocumentStyleSheetCollection::updatePageGroupUserSheets):
2912         (WebCore::DocumentStyleSheetCollection::addUserSheet):
2913         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
2914         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
2915         * dom/DocumentStyleSheetCollection.h:
2916         (DocumentStyleSheetCollection):
2917         (WebCore::DocumentStyleSheetCollection::documentUserSheets):
2918         * page/PageGroup.cpp:
2919         (WebCore::PageGroup::addUserStyleSheetToWorld):
2920         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
2921         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
2922         (WebCore::PageGroup::removeAllUserContent):
2923         (WebCore::PageGroup::resetUserStyleCacheInAllFrames):
2924         * page/PageGroup.h:
2925         (PageGroup):
2926
2927 2012-11-16  Michael Pruett  <michael@68k.org>
2928
2929         IndexedDB: Propagate DOMRequestState to IndexedDB binding utility functions
2930         https://bugs.webkit.org/show_bug.cgi?id=102430
2931
2932         Reviewed by Adam Barth.
2933
2934         DOMRequestState is currently propagated to some but not all of
2935         the IndexedDB binding utility functions. In order to implement
2936         these functions for JSC, this state must be propagated to all
2937         of the utility functions.
2938
2939         Tests: storage/indexeddb/*
2940
2941         * Modules/indexeddb/IDBCursor.cpp:
2942         (WebCore::IDBCursor::update):
2943         (WebCore::IDBCursor::setValueReady):
2944         * Modules/indexeddb/IDBObjectStore.cpp:
2945         (WebCore::generateIndexKeysForValue):
2946         (WebCore::IDBObjectStore::put):
2947         (WebCore):
2948         * Modules/indexeddb/IDBRequest.cpp:
2949         (WebCore::IDBRequest::onSuccess):
2950         (WebCore::IDBRequest::dispatchEvent):
2951         * Modules/indexeddb/IDBRequest.h:
2952         (WebCore::IDBRequest::requestState):
2953         (IDBRequest):
2954         * bindings/v8/IDBBindingUtilities.cpp:
2955         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
2956         (WebCore::serializeIDBValue):
2957         (WebCore::injectIDBKeyIntoScriptValue):
2958         * bindings/v8/IDBBindingUtilities.h:
2959         (WebCore):
2960
2961 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
2962
2963         Rebaselined run-bindings-tests.
2964         https://bugs.webkit.org/show_bug.cgi?id=102523
2965
2966         Reviewed by Dimitri Glazkov.
2967
2968         Expected results need to be updated after r134931
2969
2970         * bindings/scripts/test/JS/JSTestObj.cpp:
2971         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
2972         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
2973         (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
2974         * bindings/scripts/test/V8/V8TestObj.cpp:
2975         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
2976         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
2977         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
2978
2979 2012-11-16  Pratik Solanki  <psolanki@apple.com>
2980
2981         For single element arrays use the pointer into the CFDataRef instead of copying data
2982         https://bugs.webkit.org/show_bug.cgi?id=102306
2983         <rdar://problem/12267471>
2984
2985         Reviewed by Alexey Proskuryakov.
2986
2987         We generally copy the data received from CFNetwork into our own buffers. But if the
2988         CFArrayRef has exactly one CFDataRef inside it, then we can just hold on to the CFDataRef
2989         and access its memory directly and avoid making a copy.
2990
2991         This also moves the creation of PurgeableBuffer from CachedResource to SharedBuffer.
2992         SharedBuffer::createPurgeableBuffer() will avoid creating PurgeableBuffer when the
2993         SharedBuffer is backed by a NSData/CFDataRef and when we want to optimize and directly use
2994         the memory in the data array.
2995
2996         No new tests because no change in functionality.
2997
2998         * loader/ResourceBuffer.cpp:
2999         (WebCore::ResourceBuffer::createPurgeableBuffer): Added.
3000         * loader/ResourceBuffer.h:
3001         * loader/cache/CachedResource.cpp:
3002         (WebCore::CachedResource::makePurgeable):
3003         * platform/SharedBuffer.cpp:
3004         (WebCore::SharedBuffer::createPurgeableBuffer): Added.
3005         (WebCore::SharedBuffer::data):
3006         * platform/SharedBuffer.h:
3007         * platform/cf/SharedBufferCF.cpp:
3008         (WebCore::SharedBuffer::platformData): Use reinterpret_cast instead of C-style cast.
3009         (WebCore::SharedBuffer::maybeTransferPlatformData): Use reinterpret_cast instead of C-style cast.
3010         (WebCore::SharedBuffer::singleDataArrayBuffer): Added.
3011
3012 2012-11-16  Antti Koivisto  <antti@apple.com>
3013
3014         REGRESSION(r129644): User StyleSheet not applying
3015         https://bugs.webkit.org/show_bug.cgi?id=102110
3016
3017         Reviewed by Andreas Kling.
3018
3019         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
3020         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
3021         
3022         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
3023         It also generally cleans up the code around injected and user stylesheets.
3024
3025         Tests: userscripts/user-script-and-stylesheet.html
3026                userscripts/user-stylesheet-invalidate.html
3027
3028         * css/StyleResolver.cpp:
3029         (WebCore::StyleResolver::StyleResolver):
3030         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
3031         (WebCore::collectCSSOMWrappers):
3032         * css/StyleResolver.h:
3033         (StyleResolver):
3034         * dom/Document.cpp:
3035         (WebCore::Document::setCompatibilityMode):
3036         * dom/DocumentStyleSheetCollection.cpp:
3037         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
3038         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
3039         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
3040         (WebCore):
3041         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
3042         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
3043         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
3044         (WebCore::DocumentStyleSheetCollection::addUserSheet):
3045         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
3046         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
3047         * dom/DocumentStyleSheetCollection.h:
3048         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
3049         (DocumentStyleSheetCollection):
3050         * page/PageGroup.cpp:
3051         (WebCore::PageGroup::addUserStyleSheetToWorld):
3052         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
3053         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
3054         (WebCore::PageGroup::removeAllUserContent):
3055         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
3056         * page/PageGroup.h:
3057         (PageGroup):
3058
3059 2012-11-16  Andreas Kling  <akling@apple.com>
3060
3061         StyleResolver: Only input elements need equal "readonly" attribute for style sharing.
3062         <http://webkit.org/b/102536>
3063
3064         Reviewed by Antti Koivisto.
3065
3066         Move the comparison of the "readonly" attribute into canShareStyleWithControl() since it's only
3067         relevant for sharing style between <input> elements.
3068
3069         Also skip attribute comparisons for form control elements that share the same ElementAttributeData.
3070
3071         * css/StyleResolver.cpp:
3072         (WebCore::StyleResolver::canShareStyleWithControl):
3073         (WebCore::haveIdenticalStyleAffectingAttributes):
3074
3075 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
3076
3077         Unreviewed, rolling out r134867.
3078         http://trac.webkit.org/changeset/134867
3079         https://bugs.webkit.org/show_bug.cgi?id=102544
3080
3081         Broke security fuzzier test (heap-buffer-overflow) (Requested
3082         by bfulgham on #webkit).
3083
3084         * platform/audio/Biquad.cpp:
3085         (WebCore::Biquad::process):
3086
3087 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
3088
3089         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
3090         https://bugs.webkit.org/show_bug.cgi?id=102382
3091
3092         Reviewed by Adam Barth.
3093
3094         Updating readyState & iceState, and adding iceGatheringState.
3095         Also safeguarding the event timer callback.
3096
3097         Patch covered by existing tests.
3098
3099         * Modules/mediastream/RTCPeerConnection.cpp:
3100         (WebCore::RTCPeerConnection::RTCPeerConnection):
3101         (WebCore::RTCPeerConnection::createOffer):
3102         (WebCore::RTCPeerConnection::createAnswer):
3103         (WebCore::RTCPeerConnection::setLocalDescription):
3104         (WebCore::RTCPeerConnection::localDescription):
3105         (WebCore::RTCPeerConnection::setRemoteDescription):
3106         (WebCore::RTCPeerConnection::remoteDescription):
3107         (WebCore::RTCPeerConnection::updateIce):
3108         (WebCore::RTCPeerConnection::addIceCandidate):
3109         (WebCore::RTCPeerConnection::readyState):
3110         (WebCore::RTCPeerConnection::iceGatheringState):
3111         (WebCore):
3112         (WebCore::RTCPeerConnection::iceState):
3113         (WebCore::RTCPeerConnection::addStream):
3114         (WebCore::RTCPeerConnection::close):
3115         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
3116         (WebCore::RTCPeerConnection::stop):
3117         (WebCore::RTCPeerConnection::changeReadyState):
3118         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
3119         * Modules/mediastream/RTCPeerConnection.h:
3120         (RTCPeerConnection):
3121         * Modules/mediastream/RTCPeerConnection.idl:
3122         * dom/EventNames.h:
3123         (WebCore):
3124         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
3125         (RTCPeerConnectionHandlerClient):
3126         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
3127         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
3128         (WebCore):
3129         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
3130         (RTCPeerConnectionHandlerChromium):
3131
3132 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
3133
3134         Unreviewed, rolling out r134973.
3135         http://trac.webkit.org/changeset/134973
3136         https://bugs.webkit.org/show_bug.cgi?id=99340
3137
3138         Broke compile on at least Mac and Linux.
3139
3140         * WebCore.gyp/WebCore.gyp:
3141         * WebCore.gypi:
3142         * loader/CookieJar.cpp:
3143         * loader/chromium/CookieJarChromium.cpp: Renamed from Source/WebKit/chromium/src/FrameNetworkingContextImpl.cpp.
3144         (WebCore):
3145         (WebCore::setCookies):
3146         (WebCore::cookies):
3147         (WebCore::cookieRequestHeaderFieldValue):
3148         (WebCore::cookiesEnabled):
3149         (WebCore::getRawCookies):
3150         (WebCore::deleteCookie):
3151         (WebCore::getHostnamesWithCookies):
3152         (WebCore::deleteCookiesForHostname):
3153         (WebCore::deleteAllCookies):
3154         * platform/chromium/PlatformSupport.h:
3155         (WebCore):
3156         (PlatformSupport):
3157         * platform/network/NetworkingContext.h:
3158         * platform/network/chromium/CookieJarChromium.cpp: Removed.
3159
3160 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
3161
3162         [GTK] [WebKit2] Move GtkAuthenticationDialog to the UIProcess
3163         https://bugs.webkit.org/show_bug.cgi?id=101843
3164
3165         Reviewed by Gustavo Noronha Silva.
3166
3167         Make GtkAuthenticationDialog more general, so that it can be subclassed in 
3168         WebKit2. We cannot use the WebCore authentication-related classes directly there.
3169
3170         No new tests. This patch does not change behavior.
3171
3172         * platform/gtk/GtkAuthenticationDialog.cpp:
3173         (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Remove an unused include and reorder
3174         some field initializers.
3175         (WebCore::GtkAuthenticationDialog::authenticate): Now handle both the okay and cancel case here. This
3176         makes it simpler to subclass.
3177         (WebCore::GtkAuthenticationDialog::authenticationDialogResponseCallback): Handle fetching the username
3178         and password here, so that it can be shared with subclasses.
3179         * platform/gtk/GtkAuthenticationDialog.h: Make some methods virtual and protected so they can be
3180         subclasses.
3181
3182 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
3183
3184         [Chromium] Remove cookie-related functions from PlatformSupport
3185         https://bugs.webkit.org/show_bug.cgi?id=99340
3186
3187         Reviewed by Adam Barth.
3188
3189         Move cookie-related functions out of PlatformSupport and implement
3190         new PlatformCookieJar interface via NetworkContext.
3191
3192         * WebCore.gyp/WebCore.gyp:
3193         * WebCore.gypi:
3194         * loader/CookieJar.cpp:
3195         * loader/chromium/CookieJarChromium.cpp: Removed.
3196         * platform/chromium/PlatformSupport.h:
3197         (WebCore):
3198         (PlatformSupport):
3199         * platform/network/NetworkingContext.h:
3200         (WebKit):
3201         (NetworkingContext):
3202         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
3203         (WebCore::setCookiesFromDOM):
3204         (WebCore::cookiesForDOM):
3205         (WebCore::cookieRequestHeaderFieldValue):
3206         (WebCore::cookiesEnabled):
3207         (WebCore::getRawCookies):
3208         (WebCore::deleteCookie):
3209         (WebCore::getHostnamesWithCookies):
3210         (WebCore::deleteCookiesForHostname):
3211         (WebCore::deleteAllCookies):
3212
3213 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
3214
3215         Fix assertion bug of build fix r134961
3216         https://bugs.webkit.org/show_bug.cgi?id=102533
3217
3218         Reviewed by Martin Robinson.
3219
3220         Assertion condition should be '!d->m_currentWebChallenge.isNull()'
3221
3222         * platform/network/soup/ResourceHandleSoup.cpp:
3223         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
3224
3225 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
3226
3227         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
3228         https://bugs.webkit.org/show_bug.cgi?id=102386
3229
3230         Reviewed by Adam Barth.
3231
3232         Existing tests expanded to cover patch.
3233
3234         * platform/mediastream/RTCDataChannelDescriptor.cpp:
3235         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
3236         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
3237         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
3238         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
3239         (WebCore):
3240         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
3241         (WebKit):
3242         (RTCPeerConnectionHandlerChromium):
3243
3244 2012-11-16  Scott Violet  <sky@chromium.org>
3245
3246         [chromium] Copy linux theme related files to default
3247         https://bugs.webkit.org/show_bug.cgi?id=102403
3248
3249         Reviewed by Tony Chang
3250
3251         Transitional patch that copies linux WebThemeEngine to default directory.
3252
3253         No new tests, refactoring only.
3254
3255         * WebCore.gyp/WebCore.gyp: Update compile rules when use_default_render_theme is set.
3256         * WebCore.gypi: Adds new files.
3257         * platform/chromium/PlatformSupport.h:
3258         * platform/chromium/PlatformThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.cpp.
3259         * platform/chromium/PlatformThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.h.
3260         * platform/chromium/ScrollbarThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp.
3261         * platform/chromium/ScrollbarThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.h.
3262         * rendering/RenderThemeChromiumDefault.cpp: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.cpp.
3263         * rendering/RenderThemeChromiumDefault.h: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.h.
3264
3265 2012-11-16  Alec Flett  <alecflett@chromium.org>
3266
3267         IndexedDB: add missing 'explicit' and fix backing store release
3268         https://bugs.webkit.org/show_bug.cgi?id=102450
3269
3270         Reviewed by Tony Chang.
3271
3272         A inconsequential regression was introduced in http://trac.webkit.org/changeset/134129
3273         which resulted in objects sticking around a bit longer than
3274         expected. This makes sure the LevelDBTransaction is released
3275         at the moment of commit/rollback rather than when IDBTransactionBackendImpl
3276         is destroyed.
3277
3278         No new tests, this is just internal state that will affect
3279         some future refactoring.
3280
3281         * Modules/indexeddb/IDBBackingStore.h:
3282         (Cursor):
3283         (Transaction):
3284         (WebCore::IDBBackingStore::Transaction::reset):
3285         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
3286         (WebCore::IDBTransactionBackendImpl::abort):
3287         (WebCore::IDBTransactionBackendImpl::commit):
3288
3289 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
3290
3291         [Chromium] One last tweak to WebCore.gypi to make Win build not sad.
3292
3293         * WebCore.gypi: Removed one last mention of accessibility/gtk file.
3294
3295 2012-11-16  Robert Flack  <flackr@chromium.org>
3296
3297         Handle gesture events on scrollbars.
3298         https://bugs.webkit.org/show_bug.cgi?id=101516
3299
3300         Reviewed by Antonio Gomes.
3301
3302         Adds a gesture event handler to scrollbars and sends gestures beginning
3303         over a scrollbar to this handler to allow touch scrolling scrollbars.
3304
3305         Test: fast/events/touch/gesture/gesture-scrollbar.html
3306
3307         * page/EventHandler.cpp:
3308         (WebCore::EventHandler::clear):
3309         (WebCore::EventHandler::handleGestureEvent):
3310         (WebCore::EventHandler::isScrollbarHandlingGestures):
3311         (WebCore):
3312         * page/EventHandler.h:
3313         (EventHandler):
3314         * platform/Scrollbar.cpp:
3315         (WebCore::Scrollbar::Scrollbar):
3316         (WebCore):
3317         (WebCore::Scrollbar::gestureEvent):
3318         (WebCore::Scrollbar::mouseMoved):
3319         (WebCore::Scrollbar::mouseUp):
3320         (WebCore::Scrollbar::mouseDown):
3321         * platform/Scrollbar.h:
3322         (WebCore):
3323         (Scrollbar):
3324         * platform/ScrollbarTheme.h:
3325         (WebCore::ScrollbarTheme::hitTest):
3326         * platform/ScrollbarThemeComposite.cpp:
3327         (WebCore::ScrollbarThemeComposite::hitTest):
3328         * platform/ScrollbarThemeComposite.h:
3329         (ScrollbarThemeComposite):
3330         * platform/qt/ScrollbarThemeQStyle.cpp:
3331         (WebCore::ScrollbarThemeQStyle::hitTest):
3332         * platform/qt/ScrollbarThemeQStyle.h:
3333         (ScrollbarThemeQStyle):
3334
3335 2012-11-16  Xianzhu Wang  <wangxianzhu@chromium.org>
3336
3337         [Chromium-Android] Stack overflow in MediaControlsChromiumAndroid.cpp
3338         https://bugs.webkit.org/show_bug.cgi?id=102444
3339
3340         Reviewed by Adam Barth.
3341
3342         No new tests. Have been covered by many existing layout tests.
3343
3344         * html/shadow/MediaControlsChromiumAndroid.cpp:
3345         (WebCore::MediaControls::create): Calls createControls instead of itself.
3346
3347 2012-11-16  Andreas Kling  <akling@apple.com>
3348
3349         StyleResolver: Optimize sharing candidate evaluation for elements with shared attribute data.
3350         <http://webkit.org/b/102507>
3351
3352         Reviewed by Antti Koivisto.
3353
3354         When evaluating two elements as potential style sharing candidate, we have a whole bunch of code
3355         comparing the various attributes that would prevent sharing.
3356
3357         If the two elements both share the same ElementAttributeData, we can skip all those checks
3358         since they are guaranteed to have equal attributes.
3359
3360         Cuts the time spent in canShareStyleWithElement() by 25% on the HTML5 spec at <http://whatwg.org/c>.
3361
3362         * css/StyleResolver.cpp:
3363         (WebCore::haveIdenticalStyleAffectingAttributes):
3364         (WebCore::StyleResolver::canShareStyleWithElement):
3365
3366 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
3367
3368         [EFL][GTK] Build fix after r134955
3369         https://bugs.webkit.org/show_bug.cgi?id=102527
3370
3371         Reviewed by Martin Robinson.
3372
3373         Fix the EFL,GTK debug bulid fails after r134955.
3374
3375         * platform/network/soup/ResourceHandleSoup.cpp:
3376         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
3377
3378 2012-11-15  Alexey Proskuryakov  <ap@apple.com>
3379
3380         Private Browsing is a per-page setting that sets a global value
3381         https://bugs.webkit.org/show_bug.cgi?id=67870
3382
3383         Reviewed by Sam Weinig.
3384
3385         Make ResourceHandle{Mac,CFNet} use context to access storage session.
3386
3387         * WebCore.exp.in: We track less session state in WebCore now, so we need fewer
3388         exports.
3389
3390         * loader/FrameNetworkingContext.h: Added an OVERRIDE.
3391
3392         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled): WebCore
3393         no longer keeps track of a globally enabled private CFNetwork storage session.
3394
3395         * platform/CookiesStrategy.h: Added defaultCookieStorage(). Some cookie jar methods
3396         don't have a NetworkingContext pointer, and have to use whatever a client expects
3397         them to do. Perhaps we should move those methods away from WebCore eventually.
3398
3399         * platform/network/NetworkingContext.h: Added storageSession().
3400
3401         * platform/network/ResourceHandle.h: Removed sttaic methods for dealing with global
3402         sessions.
3403
3404         * platform/network/ResourceHandleInternal.h: Added m_storageSession. We need to
3405         remember it post-creation to do things in willSendRequest. Alternatively, we could
3406         keep a reference to NetworkingContext itself.
3407
3408         * platform/network/cf/CookieJarCFNet.cpp:
3409         (WebCore::setCookiesFromDOM): currentCFHTTPCookieStorage now needs a context,
3410         there is no globally current one any more. Also, we don't really expect cookie
3411         stirage to be 0 when not using NSURLConnection.
3412         (WebCore::cookiesForDOM): Ditto.
3413         (WebCore::cookieRequestHeaderFieldValue): Ditto.
3414         (WebCore::cookiesEnabled): Ditto.
3415         (WebCore::getRawCookies): Ditto.
3416         (WebCore::deleteCookie): Ditto.
3417         (WebCore::getHostnamesWithCookies): Ditto.
3418         (WebCore::deleteCookiesForHostname): Ditto.
3419         (WebCore::deleteAllCookies): Ditto.
3420         * platform/network/cf/CookieStorageCFNet.cpp:
3421         (WebCore::currentCFHTTPCookieStorage): Use a context.
3422         (WebCore::defaultCFHTTPCookieStorage): Except for Windows-only override session,
3423         this is implemented in a strategy.
3424         (WebCore::overridenCookieStorage): Exposed the override for WebKit use on Windows.
3425
3426         * platform/network/cf/CookieStorageCFNet.h: Ditto.
3427
3428         * platform/network/cf/ResourceHandleCFNet.cpp:
3429         (WebCore::willSendRequest): Use storage session from the context, not global one.
3430         (WebCore::makeFinalRequest): Merged this into the only remaining caller. This
3431         function didn't really make any sense on its own.
3432         (WebCore::shouldRelaxThirdPartyCookiePolicy): Factored out of createCFURLConnection
3433         to match Mac.
3434         (WebCore::ResourceHandle::createCFURLConnection): While merging makeFinalRequest()
3435         in, removed some seemingly nonsensical code that was getting and immediately re-applying
3436         cookie storage accept policy.
3437         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
3438         (WebCore::ResourceHandle::willSendRequest): Apply the stored session, not global one.
3439         (WebCore::ResourceHandle::storageSession): An accessor for static methods that cannot
3440         access "d".
3441         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession() for use in willSendRequest.
3442         (WebCore::ResourceHandle::willLoadFromCache): Don't call makeFinalRequest here.
3443         It didn't match Mac, and nothing in makeFinalRequest should have affected the result.
3444
3445         * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest):
3446         This function used to apply current storage session to every request for no apparent
3447         reason.
3448
3449         * platform/network/mac/CookieJarMac.mm:
3450         (WebCore::cookiesForDOM): Changed to pass context to currentCFHTTPCookieStorage.
3451         (WebCore::cookieRequestHeaderFieldValue): Ditto.
3452         (WebCore::setCookiesFromDOM): Ditto.
3453         (WebCore::cookiesEnabled): Ditto.
3454         (WebCore::getRawCookies): Ditto.
3455         (WebCore::deleteCookie): Ditto.
3456         (WebCore::getHostnamesWithCookies): Ditto.
3457         (WebCore::deleteCookiesForHostname): Ditto.
3458         (WebCore::deleteAllCookies): Ditto.
3459         * platform/network/mac/ResourceHandleMac.mm:
3460         (WebCore::shouldRelaxThirdPartyCookiePolicy): There was no need to special case
3461         null currentCFHTTPCookieStorage, WKSI handles that internally. Added a context
3462         argument, so that the function can access current session.
3463         (WebCore::ResourceHandle::createNSURLConnection): Updated for other code changes.
3464         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
3465         (WebCore::ResourceHandle::willLoadFromCache): Style fix.
3466         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession()
3467         for use in willSendRequest. 
3468         (WebCore::ResourceHandle::willSendRequest): Use stored session, not global one.
3469
3470 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
3471
3472         [Chromium] Land a proper fix for r134939.
3473
3474         * WebCore.gyp/WebCore.gyp: Added exclusion for "atk".
3475         * WebCore.gypi: Put the accessibility/atk directory back into WebCore.gypi.
3476
3477 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
3478
3479         [Chromium] Just yank the whole accessibility/atk dir out of WebCore.gypi.
3480
3481 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
3482
3483         [Chromium] Updated WebCore.gypi after r134939.
3484
3485         * WebCore.gypi: Renamed acessibility/gtk to accessibility/atk.
3486
3487 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
3488
3489         [GTK] Move CredentialBackingStore usage from GtkAuthenticationDialog to ResourceHandleSoup
3490         https://bugs.webkit.org/show_bug.cgi?id=101840
3491
3492         Reviewed by Gustavo Noronha Silva.
3493
3494         Make ResourceHandleSoup aware of per-session CredentialStorage and persistent CredentialStorage.
3495         Persistent credential storage interaction is moved from GtkAuthenticationDialog, so that it can
3496         be used whether or not GtkAuthenticationDialog is used or not. We try to properly handle redirects
3497         in the manner that the CFNet backend does.
3498
3499         No new tests. There are tests for this behavior, but they cannot be activated until we finish
3500         plumbing this through to the API layer. Once that patch lands, the tests will be turned on.
3501
3502         * platform/gtk/GtkAuthenticationDialog.cpp: No longer store credentials into the persistent
3503         storage manually, instead rely on ResourceHandleSoup. Also, we no longer get proposed credentials
3504         from the persistent storage here as well. They are pre-loaded by the ResourceHanndle.
3505         * platform/gtk/GtkAuthenticationDialog.h: Remove callbacks and members associated with saving
3506         credentials to the persistent credential store.
3507         * platform/network/ResourceHandle.h:
3508         (ResourceHandle): Add a method which is used to continue asynchronously after looking for
3509         proposed credentials in the persistent credential store.
3510         * platform/network/ResourceHandleInternal.h: Add a member which tracks persistent credentials to be added once we know
3511         an authentication succeeded.
3512         * platform/network/gtk/CredentialBackingStore.cpp:
3513         (CredentialForChallengeAsyncReadyCallbackData): Added this data structure used for asynchronous access
3514         of stored credentials.
3515         (WebCore::credentialForChallengeAsyncReadyCallback): Ditto for this callback.
3516         (WebCore::CredentialBackingStore::credentialForChallenge): Make this method asynchronous.
3517         * platform/network/gtk/CredentialBackingStore.h:
3518         (CredentialBackingStore): Update method signatures for for making credentialForChallenge asynchronous.
3519         * platform/network/soup/AuthenticationChallenge.h:
3520         (WebCore::AuthenticationChallenge::setProposedCredential): Added a setter so that ResourceHandleSoup
3521         can set proposed credentials from the persistent credential store.
3522         * platform/network/soup/ResourceHandleSoup.cpp:
3523         (WebCore::gotHeadersCallback): For GTK+ save any pending credential in the persistent credential storage
3524         if the authentication succeeded.
3525         (WebCore::applyAuthenticationToRequest): Added this method which generically embeds stored credentials
3526         in the request URI. This is the method that Soup uses to override any soup-stored session credential.
3527         (WebCore::restartedCallback): Strip credentials for requests that span a security origin. Handle
3528         authenticating requests from the session store.
3529         (WebCore::createSoupRequestAndMessageForHandle): Make the local request reference mutable.
3530         (WebCore::ResourceHandle::start): Remove some code which is now part of applyAuthenticationToRequest.
3531         Call applyAuthenticationToRequest and clear the user and password members like the CFNet backend does.
3532         (WebCore::getCredentialFromPersistentStoreCallback): Added this callback for getting persistently stored credentials.
3533         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge): Split out didReceiveAuthenticationChallenge
3534         into this asynchronous bit.
3535         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): For GTK+ continue handling this situation after
3536         first looking in the persistent credential store.
3537         (WebCore::ResourceHandle::receivedCredential): Store session credentials in the session storage, which is
3538         at the moment a redundant version of the Soup session storage and also prepare any persistent credentials
3539         for storage later (see gotHeadersCallback).
3540
3541 2012-11-16  Erik Arvidsson  <arv@chromium.org>
3542
3543         Update DOMException name: TypeMismatchError
3544         https://bugs.webkit.org/show_bug.cgi?id=102418
3545
3546         Reviewed by Kentaro Hara.
3547
3548         Patch 17 of 25 to update DOMException name to match the spec and Firefox.
3549
3550         Updated existing tests.
3551
3552         * dom/DOMCoreException.cpp:
3553         (WebCore):
3554         * dom/ExceptionCode.h:
3555
3556 2012-11-16  Balazs Kelemen  <kbalazs@webkit.org>
3557
3558         Coordinated Graphics: support the "freeze animations" API
3559         https://bugs.webkit.org/show_bug.cgi?id=100703
3560
3561         Reviewed by Noam Rosenthal.
3562
3563         Typo fix after previous patch.
3564
3565         No new tests, it's just a typo that only takes effect in the browser.
3566
3567         * platform/graphics/GraphicsLayerAnimation.cpp:
3568         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
3569         Initialize members.
3570
3571 2012-11-16  Dan Carney  <dcarney@google.com>
3572
3573         add 7 bit strings capabilities to the v8 binding layer
3574         https://bugs.webkit.org/show_bug.cgi?id=91850
3575
3576         Reviewed by Adam Barth.
3577
3578         This change enables the v8 binding layer to make use of webkit's
3579         8 bit string capabilities. Using 8 bit strings leads to certain
3580         benchmark performance improvemnts as can be seen in
3581         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
3582
3583         No new tests.  Test coverage already extensive.
3584
3585         * bindings/v8/V8PerIsolateData.cpp:
3586         (WebCore::V8PerIsolateData::visitExternalStrings):
3587         * bindings/v8/V8StringResource.cpp:
3588         (StringTraits):
3589         (WebCore::false):
3590         (WebCore):
3591         (WebCore::true):
3592         (WebCore::v8StringToWebCoreString):
3593         * bindings/v8/V8ValueCache.cpp:
3594         (WebCore::makeExternalString):
3595         (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
3596         (WebCore):
3597         (WebCore::WebCoreStringResourceBase::visitStrings):
3598         * bindings/v8/V8ValueCache.h:
3599         (WebCoreStringResourceBase):
3600         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
3601         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
3602         (WebCore::WebCoreStringResourceBase::atomicString):
3603         (WebCore::WebCoreStringResourceBase::memoryConsumption):
3604         (WebCoreStringResource16):
3605         (WebCore::WebCoreStringResource16::WebCoreStringResource16):
3606         (WebCore):
3607         (WebCoreStringResource8):
3608         (WebCore::WebCoreStringResource8::WebCoreStringResource8):
3609
3610 2012-11-16  Erik Arvidsson  <arv@chromium.org>
3611
3612         Update DOMException name: InvalidAccessError
3613         https://bugs.webkit.org/show_bug.cgi?id=102400
3614
3615         Reviewed by Kentaro Hara.
3616
3617         Patch 15 of 25 to update DOMException name to match the spec and Firefox.
3618
3619         Updated existing tests.
3620
3621         * dom/DOMCoreException.cpp:
3622
3623 2012-11-16  Alexandru Chiculita  <achicu@adobe.com>
3624
3625         [Texmap][CSS Shaders] Make the CustomFilterValidatedProgram maintain the platform compiled program
3626         https://bugs.webkit.org/show_bug.cgi?id=102414
3627
3628         Reviewed by Noam Rosenthal.
3629
3630         Added WebCore classes needed for the WebKit2 implementation of Texture Mapper to keep a reference to the 
3631         platform compiled custom filter. It is just used to maintain the life-time of the objects. WebKit2 injects a
3632         client in TextureMapperPlatformCompiledProgram and receives a callback when the custom filter program is not
3633         used to render any layer on the page. 
3634
3635         Note that CustomFilterValidatedProgram are reused across multiple elements of the same page. Also, the instances
3636         are reused across frames, so animations should reuse the same pre-validated program. In this case, the mechanism is
3637         extended and reused in the platform compositor.
3638         
3639         No new tests, existing tests for CSS Custom Filters already cover this path.
3640
3641         * CMakeLists.txt:
3642         * GNUmakefile.am:
3643         * GNUmakefile.list.am:
3644         * Target.pri:
3645         * WebCore.pri:
3646         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
3647         (WebCore):
3648         * platform/graphics/filters/CustomFilterValidatedProgram.h:
3649         (WebCore):
3650         (CustomFilterValidatedProgram):
3651         * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Added.
3652         (WebCore):
3653         (WebCore::CustomFilterValidatedProgram::platformCompiledProgram): Platform implementation for creating and deleting the reference.
3654         (WebCore::CustomFilterValidatedProgram::platformInit):
3655         (WebCore::CustomFilterValidatedProgram::platformDestroy):
3656         * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Added.
3657         (WebCore):
3658         (TextureMapperPlatformCompiledProgramClient):
3659         (WebCore::TextureMapperPlatformCompiledProgramClient::ref):
3660         (WebCore::TextureMapperPlatformCompiledProgramClient::deref):
3661         (TextureMapperPlatformCompiledProgram):
3662         Stores a link to a TextureMapperPlatformCompiledProgramClient. It's main purpose is to call unref on the client when
3663         the shader is not needed anymore. WebKit2 can use that to delete the corresponding shader from the compositor side.
3664         (WebCore::TextureMapperPlatformCompiledProgram::create):
3665         (WebCore::TextureMapperPlatformCompiledProgram::setClient): Used by WebKit2 to inject the platform client.
3666         (WebCore::TextureMapperPlatformCompiledProgram::client):
3667         (WebCore::TextureMapperPlatformCompiledProgram::TextureMapperPlatformCompiledProgram):
3668
3669 2012-11-16  Andreas Kling  <akling@apple.com>
3670
3671         Short-circuit Element::hasEquivalentAttributes() if elements share attribute data.
3672         <http://webkit.org/b/102498>
3673
3674         Reviewed by Antti Koivisto.
3675
3676         Add a fast path to hasEquivalentAttributes() that checks if both elements are using
3677         the same ElementAttributeData.
3678
3679         * dom/Element.cpp:
3680         (WebCore::Element::hasEquivalentAttributes):
3681
3682 2012-11-16  Zeno Albisser  <zeno@webkit.org>
3683
3684         [Qt] Adding a null pointer check for currentContext to GraphicsContext3DQt.
3685         https://bugs.webkit.org/show_bug.cgi?id=102360
3686
3687         QOpenGLContext::currentContext() will return null, in case there is
3688         no current context. Therefore currentContext must be null-checked
3689         before it can be reused.
3690         Making a context current on a null-surface on the other hand is
3691         perfectly possible.
3692
3693         Reviewed by Kenneth Rohde Christiansen.
3694
3695         * platform/graphics/qt/GraphicsContext3DQt.cpp:
3696         (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
3697
3698 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
3699
3700         Web Inspector: Workaround to show shortcuts for panels that hasn't been loaded.
3701         https://bugs.webkit.org/show_bug.cgi?id=102488
3702
3703         Reviewed by Vsevolod Vlasov.
3704
3705         Panels are lazily loaded / instantiated.
3706         Panel constructors register keyboard shortcuts.
3707
3708         When user open shortcuts screen all panel should be loaded.
3709         Otherwise some shortcuts will be missing.
3710
3711         * inspector/front-end/ShortcutsScreen.js: Added callback invokation.
3712         * inspector/front-end/inspector.js:
3713         Provided callback that loads all panels.
3714
3715 2012-11-16  Kentaro Hara  <haraken@chromium.org>
3716
3717         [V8] Remove IsSubType() from CodeGeneratorV8.pm
3718         https://bugs.webkit.org/show_bug.cgi?id=102348
3719
3720         Reviewed by Adam Barth.
3721
3722         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
3723
3724         No tests. No change in behavior.
3725
3726         * bindings/scripts/CodeGenerator.pm:
3727         (IsSubType):
3728         * bindings/scripts/CodeGeneratorJS.pm:
3729         (GenerateImplementation):
3730         * bindings/scripts/CodeGeneratorV8.pm:
3731         (GenerateHeader):
3732         (GetInternalFields):
3733         (GenerateNormalAttrGetter):
3734         (GenerateNormalAttrSetter):
3735         (GenerateFunctionCallback):
3736         (GenerateImplementationIndexer):
3737         (GenerateToV8Converters):
3738
3739 2012-11-16  Mario Sanchez Prada  <mario@webkit.org>
3740
3741         [EFL] Share WebKit-Gtk's Accessibility implementation with others WebKit ports.
3742         https://bugs.webkit.org/show_bug.cgi?id=99578
3743
3744         Reviewed by Martin Robinson.
3745
3746         Renamed WebCore/accessibility/gtk to WebCore/accessibility/atk.
3747
3748         * GNUmakefile.am:
3749         * GNUmakefile.list.am:
3750         * accessibility/atk/AXObjectCacheAtk.cpp: Renamed from
3751         Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp.
3752         * accessibility/atk/AccessibilityObjectAtk.cpp: Renamed from
3753         Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp.
3754         * accessibility/atk/WebKitAccessibleHyperlink.cpp: Renamed from
3755         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp.
3756         * accessibility/atk/WebKitAccessibleHyperlink.h: Renamed from
3757         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.h.
3758         * accessibility/atk/WebKitAccessibleInterfaceAction.cpp: Renamed
3759         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.cpp.
3760         * accessibility/atk/WebKitAccessibleInterfaceAction.h: Renamed
3761         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.h.
3762         * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
3763         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp.
3764         * accessibility/atk/WebKitAccessibleInterfaceComponent.h: Renamed
3765         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.h.
3766         * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp: Renamed
3767         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp.
3768         * accessibility/atk/WebKitAccessibleInterfaceDocument.h: Renamed
3769         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.h.
3770         * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
3771         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp.
3772         * accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
3773         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.h.
3774         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
3775         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp.
3776         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
3777         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h.
3778         * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
3779         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp.
3780         * accessibility/atk/WebKitAccessibleInterfaceHypertext.h: Renamed
3781         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.h.
3782         * accessibility/atk/WebKitAccessibleInterfaceImage.cpp: Renamed
3783         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.cpp.
3784         * accessibility/atk/WebKitAccessibleInterfaceImage.h: Renamed from
3785         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.h.
3786         * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
3787         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp.
3788         * accessibility/atk/WebKitAccessibleInterfaceSelection.h: Renamed
3789         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.h.
3790         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp: Renamed
3791         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.cpp.
3792         * accessibility/atk/WebKitAccessibleInterfaceTable.h: Renamed from
3793         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.h.
3794         * accessibility/atk/WebKitAccessibleInterfaceText.cpp: Renamed
3795         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp.
3796         * accessibility/atk/WebKitAccessibleInterfaceText.h: Renamed from
3797         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.h.
3798         * accessibility/atk/WebKitAccessibleInterfaceValue.cpp: Renamed
3799         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp.
3800         * accessibility/atk/WebKitAccessibleInterfaceValue.h: Renamed from
3801         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h.
3802         * accessibility/atk/WebKitAccessibleUtil.cpp: Renamed from
3803         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.cpp.
3804         * accessibility/atk/WebKitAccessibleUtil.h: Renamed from
3805         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.h.
3806         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Renamed from
3807         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp.
3808         * accessibility/atk/WebKitAccessibleWrapperAtk.h: Renamed from
3809         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.h.
3810
3811 2012-11-16  Shinya Kawanaka  <shinyak@chromium.org>
3812
3813         Changing pseudoClass (:indeterminate) should cause distribution
3814         https://bugs.webkit.org/show_bug.cgi?id=101903
3815
3816         Reviewed by Dimitri Glazkov.
3817
3818         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
3819         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
3820
3821         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
3822         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
3823
3824         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
3825                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
3826
3827         * html/HTMLInputElement.cpp:
3828         (WebCore::HTMLInputElement::updateType):
3829         (WebCore::HTMLInputElement::setIndeterminate):
3830         * html/HTMLProgressElement.cpp:
3831         (WebCore::HTMLProgressElement::didElementStateChange):
3832
3833 2012-11-16  Alexis Menard  <alexis@webkit.org>
3834
3835         Factorize the creation of primitive values with a pair into a function.
3836         https://bugs.webkit.org/show_bug.cgi?id=102485
3837
3838         Reviewed by Antti Koivisto.
3839
3840         The pattern is already existing in various call sites inside CSSParser
3841         and more will be added in the future (see bug 102104).
3842
3843         No new tests : It's a refactoring only, the tests should cover it.
3844
3845         * css/CSSParser.cpp:
3846         (WebCore):
3847         (WebCore::createPrimitiveValuePair):
3848         (WebCore::CSSParser::parseValue):
3849         (WebCore::CSSParser::parseFillSize):
3850         (WebCore::CSSParser::parseBorderImageRepeat):
3851         (WebCore::CSSParser::parseBorderRadius):
3852         (WebCore::CSSParser::parseCounter):
3853
3854 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
3855
3856         Expand PlatformCookieJar interface to allow for other ports
3857         https://bugs.webkit.org/show_bug.cgi?id=102456
3858
3859         Reviewed by Adam Barth.
3860
3861         Add firstParty and cookieURL arguments to several functions to
3862         prepare for integrating Chromium port into new PlatformCookieJar
3863         interface.
3864
3865         * loader/CookieJar.cpp:
3866         (WebCore::cookiesEnabled):
3867         (WebCore::cookieRequestHeaderFieldValue):
3868         (WebCore::getRawCookies):
3869         * platform/network/PlatformCookieJar.h:
3870         (WebCore):
3871         * platform/network/cf/CookieJarCFNet.cpp:
3872         (WebCore::cookieRequestHeaderFieldValue):
3873         (WebCore::cookiesEnabled):
3874         (WebCore::getRawCookies):
3875         * platform/network/curl/CookieJarCurl.cpp:
3876         (WebCore::cookieRequestHeaderFieldValue):
3877         (WebCore::cookiesEnabled):
3878         (WebCore::getRawCookies):
3879         * platform/network/mac/CookieJarMac.mm:
3880         (WebCore::cookieRequestHeaderFieldValue):
3881         (WebCore::cookiesEnabled):
3882         (WebCore::getRawCookies):
3883         * platform/network/qt/CookieJarQt.cpp:
3884         (WebCore::cookieRequestHeaderFieldValue):
3885         (WebCore::cookiesEnabled):
3886         (WebCore::getRawCookies):
3887         * platform/network/soup/CookieJarSoup.cpp:
3888         (WebCore::cookieRequestHeaderFieldValue):
3889         (WebCore::cookiesEnabled):
3890         (WebCore::getRawCookies):
3891         * platform/network/win/CookieJarWin.cpp:
3892         (WebCore::cookieRequestHeaderFieldValue):
3893         (WebCore::cookiesEnabled):
3894         (WebCore::getRawCookies):
3895
3896 2012-11-16  Julien Chaffraix  <jchaffraix@webkit.org>
3897
3898         RenderGrid should have a function to resolve grid position
3899         https://bugs.webkit.org/show_bug.cgi?id=102441
3900
3901         Reviewed by Ojan Vafai.
3902
3903         The code was doing this conversion implicitly inside RenderGrid::findChildLogicalPosition.
3904         Also note that we also provided a fallback by returning LayoutPoint() (ie the (0, 0) position
3905         on the grid) if we couldn't handle the value. The explicit conversion is needed in order to
3906         support render areas and add a proper grid model to RenderGrid.
3907
3908         No expected change in behavior.
3909
3910         * rendering/RenderGrid.h:
3911         * rendering/RenderGrid.cpp:
3912         (WebCore::RenderGrid::resolveGridPosition):
3913         Added this new function to handle the conversion. We re-use Length but should never see
3914         a lot of the <length> values so I added some ASSERTs to enforce and catch that.
3915
3916         (WebCore::RenderGrid::findChildLogicalPosition):
3917         Simplified the function now that it just use resolveGridPosition.
3918
3919 2012-11-16  Ulan Degenbaev  <ulan@chromium.org>
3920
3921         [V8] Increment the amount of externally allocated memory for the receiving V8 isolate when transferring ArrayBuffer
3922         https://bugs.webkit.org/show_bug.cgi?id=94463
3923
3924         Reviewed by Kentaro Hara.
3925
3926         Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer is deserialized and transferred.
3927
3928         Test: ManualTests/typed-array-memory.html
3929
3930         * bindings/v8/SerializedScriptValue.cpp:
3931
3932 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
3933
3934         Unreviewed, rolling out r134694.
3935         http://trac.webkit.org/changeset/134694
3936         https://bugs.webkit.org/show_bug.cgi?id=102481
3937
3938         it made API test crash on EFL port (Requested by gyuyoung on
3939         #webkit).
3940
3941         * platform/efl/RenderThemeEfl.cpp:
3942         (WebCore::fillColorsFromEdjeClass):
3943         (WebCore::RenderThemeEfl::setColorFromThemeClass):
3944         (WebCore::RenderThemeEfl::loadTheme):
3945         (WebCore::RenderThemeEfl::RenderThemeEfl):
3946         * platform/efl/RenderThemeEfl.h:
3947         (RenderThemeEfl):
3948
3949 2012-11-16  Mike West  <mkwst@chromium.org>
3950
3951         Web Inspector: Move call stack generation out of bindings.
3952         https://bugs.webkit.org/show_bug.cgi?id=101331
3953
3954         Reviewed by Yury Semikhatsky.
3955
3956         Currently, we generate stack traces for console messages at each call
3957         site. Bug 100650 has the end goal of moving all stack trace generation
3958         inside of the Inspector in order to ensure that we never send a console
3959         message without a stack trace if it's possible to generate one. This
3960         also ensures that we never generate unused call stacks.
3961
3962         This patch is the first step in that direction, moving stack trace
3963         generation out of the Console bindings, and into either Console or
3964         InspectorConsoleAgent.
3965
3966         No visible change in behavior should result; this refactoring should
3967         continue to pass all existing inspector tests.
3968
3969         * bindings/js/JSConsoleCustom.cpp:
3970         (WebCore::JSConsole::profile):
3971         (WebCore::JSConsole::profileEnd):
3972             Adjust custom JSC Console bindings to drop call stack generation.
3973         * bindings/scripts/CodeGeneratorJS.pm:
3974         (GenerateCallWith):
3975         * bindings/scripts/CodeGeneratorV8.pm:
3976         (GenerateCallWith):
3977             Drop call stack generation from JSC and V8 bindings.
3978         * bindings/scripts/CodeGeneratorGObject.pm:
3979             Skip timeEnd explicitly in these bindings; it used to include
3980             ScriptArguments, which autoskipped it. Now it doesn't, so it needs
3981             to be called out on its own.
3982         * bindings/v8/ScriptCallStackFactory.cpp:
3983         (WebCore::createScriptCallStackForConsole):
3984         (WebCore::createScriptCallStack):
3985         (WebCore):
3986         * bindings/v8/ScriptCallStackFactory.h:
3987         (WebCore):
3988             Add 'createScriptCallStack(ScriptState*, size_t)' to V8's
3989             ScriptCallStackFactory in order to match JCS' implementation.
3990             It simply delegates to 'createScriptCallStackForConsole', which
3991             now also accepts a 'maxStackSize' parameter.
3992         * bindings/v8/custom/V8ConsoleCustom.cpp:
3993         (WebCore::V8Console::traceCallback):
3994         (WebCore::V8Console::assertCallback):
3995         (WebCore::V8Console::profileCallback):
3996         (WebCore::V8Console::profileEndCallback):
3997             Adjust custom V8 bindings to drop call stack generation.
3998         * inspector/InspectorConsoleAgent.cpp:
3999         (WebCore::InspectorConsoleAgent::addMessageToConsole):
4000             With the eventual goal of getting rid of the call stack parameter
4001             entirely, this patch drops it from one version of
4002             'addMessageToConsole' (replacing it with ScriptState*), and creates
4003             a new version that only accepts a call stack. We should be able to
4004             migrate most (all?) external call sites over to the arguments
4005             version in future patches.
4006         (WebCore):
4007         (WebCore::InspectorConsoleAgent::count):
4008             Count takes 'ScriptState*' instead of a call stack, and generates
4009             the stack as needed.
4010         * inspector/InspectorConsoleAgent.h:
4011         (InspectorConsoleAgent):
4012         * inspector/InspectorConsoleInstrumentation.h:
4013         (WebCore::InspectorInstrumentation::addMessageToConsole):
4014         (WebCore):
4015         (WebCore::InspectorInstrumentation::consoleCount):
4016         * inspector/InspectorInstrumentation.cpp:
4017         (WebCore):
4018         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
4019         (WebCore::InspectorInstrumentation::consoleCountImpl):
4020         * inspector/InspectorInstrumentation.h:
4021         (InspectorInstrumentation):
4022             Changes the InspectorInstrumentation pipeline to match the
4023             InspectorConsoleAgent changes.
4024         * page/Console.cpp:
4025         (WebCore::Console::addMessage):
4026             We now (always) generate one frame of a stack trace in order to
4027             populate line numbers and caller URLs. If we need to print the whole
4028             trace here, we generate a full stack.
4029         (WebCore::Console::debug):
4030         (WebCore::Console::error):
4031         (WebCore::Console::info):
4032         (WebCore::Console::log):
4033         (WebCore::Console::warn):
4034         (WebCore::Console::dir):
4035         (WebCore::Console::dirxml):
4036         (WebCore::Console::clear):
4037         (WebCore::Console::trace):
4038         (WebCore::Console::assertCondition):
4039         (WebCore::Console::count):