Chaging pseudoClass (:enabled) should cause distribution
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
2
3         Chaging pseudoClass (:enabled) should cause distribution
4         https://bugs.webkit.org/show_bug.cgi?id=101900
5
6         Reviewed by Dimitri Glazkov.
7
8         When element's 'enabled' state is changed, we have to invalidate distribution.
9
10         According to the spec, :enabled matches anchor/area/link element having href attribute,
11         and several form control elements which is not disabled. However, currently :enalbed does not match
12         anchor/area/link yet. See https://bugs.webkit.org/show_bug.cgi?id=102349
13
14         Tests: fast/dom/shadow/pseudoclass-update-enabled-anchor.html
15                fast/dom/shadow/pseudoclass-update-enabled-area.html
16                fast/dom/shadow/pseudoclass-update-enabled-button.html
17                fast/dom/shadow/pseudoclass-update-enabled-fieldset.html
18                fast/dom/shadow/pseudoclass-update-enabled-input.html
19                fast/dom/shadow/pseudoclass-update-enabled-optgroup.html
20                fast/dom/shadow/pseudoclass-update-enabled-option.html
21                fast/dom/shadow/pseudoclass-update-enabled-select.html
22                fast/dom/shadow/pseudoclass-update-enabled-textarea.html
23
24         * html/HTMLAnchorElement.cpp:
25         (WebCore::HTMLAnchorElement::parseAttribute):
26         * html/HTMLFormControlElement.cpp:
27         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
28         * html/HTMLOptGroupElement.cpp:
29         (WebCore::HTMLOptGroupElement::parseAttribute):
30         * html/HTMLOptionElement.cpp:
31         (WebCore::HTMLOptionElement::parseAttribute):
32
33 2012-11-15  Erik Arvidsson  <arv@chromium.org>
34
35         Update DOMException name: ValidationError
36         https://bugs.webkit.org/show_bug.cgi?id=102416
37
38         Reviewed by Kentaro Hara.
39
40         Patch 16 of 25 to update DOMException name to match the spec and Firefox.
41
42         VALIDATION_ERR is historical and not used in any spec or our code.
43
44         * dom/DOMCoreException.cpp:
45         * dom/ExceptionCode.h:
46
47 2012-11-15  Kentaro Hara  <haraken@chromium.org>
48
49         [V8] Remove IsSubType() from CodeGeneratorV8.pm
50         https://bugs.webkit.org/show_bug.cgi?id=102348
51
52         Reviewed by Adam Barth.
53
54         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
55
56         No tests. No change in behavior.
57
58         * bindings/scripts/CodeGenerator.pm:
59         (IsSubType):
60         * bindings/scripts/CodeGeneratorJS.pm:
61         (GenerateImplementation):
62         * bindings/scripts/CodeGeneratorV8.pm:
63         (GenerateHeader):
64         (GetInternalFields):
65         (GenerateNormalAttrGetter):
66         (GenerateNormalAttrSetter):
67         (GenerateFunctionCallback):
68         (GenerateImplementationIndexer):
69         (GenerateToV8Converters):
70
71 2012-11-15  Erik Arvidsson  <arv@chromium.org>
72
73         Update DOMException name: NamespaceError
74         https://bugs.webkit.org/show_bug.cgi?id=102395
75
76         Reviewed by Kentaro Hara.
77
78         Patch 14 of 25 to update DOMException name to match the spec and Firefox.
79
80         Updated existing tests.
81
82         * dom/DOMCoreException.cpp:
83
84 2012-11-15  Tien-Ren Chen  <trchen@chromium.org>
85
86         Add Settings to disable custom scrollbars on main frame
87         https://bugs.webkit.org/show_bug.cgi?id=102323
88
89         Reviewed by Adam Barth.
90
91         Custom scrollbars on main frame don't really work well on touch devices.
92         Add a setting to inhibit their creation.
93
94         No new tests. No change in default layout behavior.
95
96         * page/FrameView.cpp:
97         (WebCore::FrameView::createScrollbar):
98         * page/Settings.in:
99
100 2012-11-15  Rick Byers  <rbyers@chromium.org>
101
102         custom CSS cursors ignore hotspot values embedded in CUR files
103         https://bugs.webkit.org/show_bug.cgi?id=100059
104
105         Reviewed by Kenneth Russell.
106
107         Add reading the hotspot values to the ICOImageDecoder (for CUR files only),
108         and plumb it through so that the existing calls to ImageSource::getHotSpot
109         actually return the hot spot value when there is one.
110
111         Tests: fast/events/mouse-cursor.html, fast/events/mouse-cursor-multiframecur.html
112
113         * platform/graphics/ImageSource.cpp:
114         (WebCore::ImageSource::getHotSpot):
115         * platform/graphics/chromium/DeferredImageDecoder.cpp:
116         (WebCore::DeferredImageDecoder::hotSpot):
117         (WebCore::DeferredImageDecoder::hotSpotAtIndex):
118         * platform/graphics/chromium/DeferredImageDecoder.h:
119         (DeferredImageDecoder):
120         * platform/image-decoders/ImageDecoder.h:
121         (WebCore::ImageDecoder::hotSpot):
122         (WebCore::ImageDecoder::hotSpotAtIndex):
123         (ImageDecoder):
124         * platform/image-decoders/ico/ICOImageDecoder.cpp:
125         (WebCore::ICOImageDecoder::hotSpot):
126         (WebCore::ICOImageDecoder::hotSpotAtIndex):
127         (WebCore::ICOImageDecoder::processDirectory):
128         (WebCore::ICOImageDecoder::readDirectoryEntry):
129         * platform/image-decoders/ico/ICOImageDecoder.h:
130         (ICOImageDecoder):
131         (IconDirectoryEntry):
132
133 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
134
135         Make OpenTypeVerticalData be ref-counted
136         https://bugs.webkit.org/show_bug.cgi?id=101971
137
138         Reviewed by Tony Chang.
139
140         FontCache::purgeInactiveFontData() uses mark & sweep algorithm to remove unused
141         OpenTypeVerticalData objects. It marks only OpenTypeVerticalData which can be reached
142         via SimpleFontData in gFontDataCache. However, OpenTypeVerticalData can be referred by
143         SimpleFontData which resides in CSSFontFaceSource::m_fontDataTable so the algorithm can
144         delete active OpenTypeVerticalData. To avoid deleting active OpenTypeVerticalData, make
145         it be ref-counted.
146
147         No new tests. No changes in behavior. Checked manually that the use-after-free was fixed.
148
149         * platform/graphics/FontCache.cpp:
150         (WebCore): Use RefPtr instead of OwnPtr for FontVerticalDataCache.
151         (WebCore::FontCache::getVerticalData): Return PassRefPtr<OpenTypeVerticalData>.
152         (WebCore::FontCache::purgeInactiveFontData): Follow the change of OwnPtr -> RefPtr.
153         * platform/graphics/FontCache.h:
154         * platform/graphics/SimpleFontData.cpp:
155         (WebCore::SimpleFontData::SimpleFontData):
156         * platform/graphics/SimpleFontData.h:
157         Use RefPtr instead of raw const pointer for OpenTypeVerticalData.
158         (WebCore::SimpleFontData::verticalData):
159         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
160         (WebCore::FontPlatformData::verticalData): Return PassRefPtr<OpenTypeVerticalData>.
161         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
162         (FontPlatformData):
163         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
164         (WebCore::FontPlatformData::verticalData): Ditto.
165         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
166         (WebCore):
167         (FontPlatformData):
168         * platform/graphics/opentype/OpenTypeVerticalData.h:
169         (WebCore::OpenTypeVerticalData::create): Added.
170         (OpenTypeVerticalData):
171
172 2012-11-15  Xingnan Wang  <xingnan.wang@intel.com>
173
174         Optimize the multiply-add in Biquad.cpp::process
175         https://bugs.webkit.org/show_bug.cgi?id=75528
176
177         Reviewed by Brent Fulgham.
178
179         Pipeline the multiply-add with SSE2 intrinsics.
180         Get ~45% performance improvement for the function.
181
182         * platform/audio/Biquad.cpp:
183         (WebCore::Biquad::process):
184
185 2012-11-15  Alec Flett  <alecflett@chromium.org>
186
187         Add tests for explicit serialization values
188         https://bugs.webkit.org/show_bug.cgi?id=96818
189
190         Reviewed by Adam Barth.
191
192         Expose direct access to the serialization/deserialization mechanisms
193         of SerializedScriptValue to DumpRenderTree.
194
195         * testing/Internals.cpp:
196         (WebCore::Internals::serializeObject):
197         (WebCore):
198         (WebCore::Internals::deserializeBuffer):
199         * testing/Internals.h:
200         (WebCore):
201         * testing/Internals.idl:
202
203 2012-11-15  Gustavo Noronha Silva  <gns@gnome.org>
204
205         [GTK] Split WebCore/platform into a separate library
206         https://bugs.webkit.org/show_bug.cgi?id=94435
207
208         Reviewed by Martin Robinson.
209
210         More people have been reporting problems when linking WebCore because
211         the command line limit is being exceeded. Splitting WebCore a bit more
212         is in order.
213
214         * GNUmakefile.am: add new libWebCorePlatform convenience library.
215         * GNUmakefile.list.am: move list of platform/* files to its own variable.
216
217 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
218
219         Remove unused macro HANDLE_INHERIT_AND_INITIAL_WITH_VALUE in StyleResolver.cpp
220         https://bugs.webkit.org/show_bug.cgi?id=102036
221
222         Reviewed by Darin Adler.
223
224         Remove HANDLE_INHERIT_AND_INITIAL_WITH_VALUE macro, as it is not used anywhere.
225
226         No tests added because code is unused, and compile is enough to verify that conculsively.
227
228         * css/StyleResolver.cpp:
229
230 2012-11-15  Erik Arvidsson  <arv@chromium.org>
231
232         Update DOMException name: SyntaxError
233         https://bugs.webkit.org/show_bug.cgi?id=102279
234
235         Reviewed by Kentaro Hara.
236
237         Patch 12 of 25 to update DOMException name to match the spec and Firefox.
238
239         Updated existing tests.
240
241         * dom/DOMCoreException.cpp:
242
243 2012-11-15  Takashi Sakamoto  <tasak@google.com>
244
245         [Win] key event's location does not work on Windows platform.
246         https://bugs.webkit.org/show_bug.cgi?id=89742
247
248         Reviewed by Brent Fulgham.
249
250         As WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP doesn't
251         directly provide a virtual keycode which distinguish between left-hand
252         and right-hand keys. To obtain a virtual keycode, we have to look at
253         lparam, i.e. scancode and extended key bit. So if the given virtual
254         keycode is control, shift, or menu, use MapVirtualKey with scancode and
255         extended key bit and recreate a virtual keycode which distinguishes
256         between left-hand and right-hand.
257
258         No new tests, because left-hand keys, right-hand keys layout tests
259         have been already added.
260
261         * platform/win/KeyEventWin.cpp:
262         (WebCore::windowsKeycodeWithLocation):
263         Use wparam and lparam to recreate a virtual keycode which distinguishes
264         between left-hand and right-hand if the given wparam (=virtual keycode)
265         is control, shift, or menu.
266         (WebCore):
267         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
268         Use the newly added function to obtain windows virtual keycode.
269
270 2012-11-15  Joe Mason  <jmason@rim.com>
271
272         [BlackBerry] Don't assert when notifyAuthReceived is called with a different auth type
273         https://bugs.webkit.org/show_bug.cgi?id=102436
274
275         Reviewed by Rob Buis.
276
277         The server type could change if we contact a site taking HTTP auth, through an HTTP proxy
278         taking auth of its own. First we get a 407 from the proxy, and then when get past the
279         proxy, we get a 401 from the end site - so notifyAuthReceived gets called again with auth
280         type Proxy instead of HTTP.
281
282         The correct thing to do when that happens is skip the "update the auth type in the
283         credentials" step, since these are actually new credentials and not just credentials being
284         reused for a different auth type on the same server.
285
286         PR 241637
287
288         * platform/network/blackberry/NetworkJob.cpp:
289         (WebCore::NetworkJob::notifyAuthReceived):
290
291 2012-11-15  Stephen Chenney  <schenney@chromium.org>
292
293         mpath elements do not clear resource lists before destruction
294         https://bugs.webkit.org/show_bug.cgi?id=101505
295
296         Reviewed by Abhishek Arya.
297
298         The destructor for SVGMPathElement should clear its resources before
299         deletion, so as not to leave hanging pointers in resource lists.
300
301         Test: svg/animations/mpath-remove-from-dependents-on-delete-crash.html
302
303         * svg/SVGMPathElement.cpp:
304         (WebCore::SVGMPathElement::~SVGMPathElement): Add destructor that calls clearResourceReferences.
305         (WebCore):
306         * svg/SVGMPathElement.h:
307         (SVGMPathElement): Add destructor.
308
309 2012-11-15  Kentaro Hara  <haraken@chromium.org>
310
311         Remove CodeGenerator::StripModule
312         https://bugs.webkit.org/show_bug.cgi?id=102338
313
314         Reviewed by Adam Barth.
315
316         Now WebKit IDL files have no modules. (The Web IDL spec has no modules.)
317         We can remove CodeGenerator::StripModule.
318         This might break some internal builds if the internal builds are still
319         using modules. Ping haraken@ you observe it.
320
321         No tests. No change in behavior.
322
323         * bindings/scripts/CodeGenerator.pm:
324         (ForAllParents):
325         (AttributeNameForGetterAndSetter):
326         (IsStrictSubtype):
327         * bindings/scripts/CodeGeneratorCPP.pm:
328         (GetClassName):
329         (GetImplClassName):
330         (GetParentImplClassName):
331         (GetParent):
332         (ConversionNeeded):
333         (GetCPPTypeGetter):
334         (AddForwardDeclarationsForType):
335         (AddIncludesForType):
336         (GenerateImplementation):
337         * bindings/scripts/CodeGeneratorGObject.pm:
338         (GetParentClassName):
339         (GetParentGObjType):
340         (GetClassName):
341         * bindings/scripts/CodeGeneratorJS.pm:
342         (GetParentClassName):
343         (AddIncludesForTypeInImpl):
344         (AddIncludesForTypeInHeader):
345         (GenerateParametersCheckExpression):
346         (GenerateImplementation):
347         (GenerateParametersCheck):
348         (GetNativeTypeFromSignature):
349         (JSValueToNative):
350         (NativeToJSValue):
351         * bindings/scripts/CodeGeneratorObjC.pm:
352         (GetClassName):
353         (GetImplClassName):
354         (GetParentImplClassName):
355         (GetParentAndProtocols):
356         (GetPropertyAttributes):
357         (ConversionNeeded):
358         (GetObjCTypeGetter):
359         (AddForwardDeclarationsForType):
360         (AddIncludesForType):
361         (GenerateImplementation):
362         * bindings/scripts/CodeGeneratorV8.pm:
363         (AddIncludesForType):
364         (GenerateHeader):
365         (IsSubType):
366         (GenerateSingleBatchedAttribute):
367         (GenerateImplementation):
368         (BaseInterfaceName):
369         (GetTypeFromSignature):
370         (IsWrapperType):
371
372 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
373
374         Make assumptions about m_parentStyle consistent within StyleResolver::applyProperty()
375         https://bugs.webkit.org/show_bug.cgi?id=101696
376
377         Reviewed by Tony Chang.
378
379         Most of the code in StyleResolver::applyProperty assumes that isInherit implies that m_parentStyle is available.
380         This patch ASSERTs that this assumption is correct, and removes the few existing checks to maintain consistency.
381
382         No new tests / covered by all existing CSS tests.
383
384         * css/StyleResolver.cpp:
385         (WebCore::StyleResolver::applyProperty):
386
387 2012-11-15  Kentaro Hara  <haraken@chromium.org>
388
389         [V8] Remove redundant $interfaceName from function parameters
390         https://bugs.webkit.org/show_bug.cgi?id=102334
391
392         Reviewed by Adam Barth.
393
394         'sub func { my $dataNode = shift; my $interfaceName = shift; }'
395         is redundant. We can get $interfaceName by $dataNode->name.
396
397         No tests. No change in behavior.
398
399         * bindings/scripts/CodeGeneratorV8.pm:
400         (GenerateOpaqueRootForGC):
401         (GenerateHeader):
402         (GenerateConstructorGetter):
403         (GenerateNormalAttrGetter):
404         (GenerateReplaceableAttrSetter):
405         (GenerateNormalAttrSetter):
406         (GenerateOverloadedFunctionCallback):
407         (GenerateFunctionCallback):
408         (GenerateOverloadedConstructorCallback):
409         (GenerateSingleConstructorCallback):
410         (GenerateConstructorCallback):
411         (GenerateEventConstructorCallback):
412         (GenerateTypedArrayConstructorCallback):
413         (GenerateNamedConstructorCallback):
414         (GenerateBatchedAttributeData):
415         (GenerateImplementation):
416         (GenerateToV8Converters):
417         (GetNativeTypeForConversions):
418
419 2012-11-15  Simon Fraser  <simon.fraser@apple.com>
420
421         Ensure that scrollbar layers show debug borders
422         https://bugs.webkit.org/show_bug.cgi?id=102429
423
424         Reviewed by Anders Carlsson.
425
426         After r133517, scrollbar layers no longer showed debug borders, which
427         was very confusing. Fix this by explicitly calling setShowDebugBorder()
428         on the scrollbar-related layers owned by RenderLayerCompositor
429         and RenderLayerBacking.
430         
431         * rendering/RenderLayerBacking.cpp:
432         (WebCore::RenderLayerBacking::updateDebugIndicators):
433         * rendering/RenderLayerCompositor.cpp:
434         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
435         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
436
437 2012-11-15  Andreas Kling  <akling@apple.com>
438
439         ASSERTION FAILED: fastAttributeLookupAllowed(name) for 7 layout tests
440         <http://webkit.org/b/102423>
441
442         Reviewed by Anders Carlsson.
443
444         Use Element::getAttributeItem() to find out if the element has a given attribute
445         instead of fastHasAttribute() since that causes assertions for the "style" attribute.
446
447         * html/parser/HTMLConstructionSite.cpp:
448         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
449
450 2012-11-15  Erik Arvidsson  <arv@chromium.org>
451
452         Update DOMException name: DOMStringSizeError
453         https://bugs.webkit.org/show_bug.cgi?id=102089
454
455         Reviewed by Ojan Vafai.
456
457         Patch 2 of 25 to update DOMException name to match the spec and Firefox.
458
459         DOMSTRING_SIZE_ERR is historical and not used in any spec or in our code.
460
461         * dom/DOMCoreException.cpp:
462         * dom/ExceptionCode.h:
463
464 2012-11-15  Joshua Bell  <jsbell@chromium.org>
465
466         IndexedDB: Indexing tests are flaky-crashing
467         https://bugs.webkit.org/show_bug.cgi?id=102283
468
469         Reviewed by Tony Chang.
470
471         Processing the final task can cause IDBTransactionBackendImpl references to be released
472         by all holders. Prior to looping over the tasks (or, in an even earlier implementation,
473         swapping queues) control would fall off the end of the function. The loop termination
474         check introduced in http://wkrev.com/134529 requires that |this| be kept alive until
475         the method completes.
476
477         Test: storage/indexeddb/transaction-crash-in-tasks.html
478
479         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
480         (WebCore::IDBTransactionBackendImpl::abort): Rename self => protect.
481         (WebCore::IDBTransactionBackendImpl::commit): Rename self => protect.
482         (WebCore::IDBTransactionBackendImpl::taskTimerFired): New self-ref.
483
484 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
485
486         MutationObserver wrapper should not be collected while still observing
487         https://bugs.webkit.org/show_bug.cgi?id=102328
488
489         Reviewed by Adam Barth.
490
491         Make MutationObserver an ActiveDOMObject so that the wrapper is not
492         collected while it is still observing the DOM. This is needed because
493         the wrapper is passed into the callback and expandos on the wrapper
494         should be preserved.
495
496         Test: fast/mutation/observer-wrapper-dropoff.html
497
498         * bindings/js/JSMutationObserverCustom.cpp:
499         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
500         * bindings/v8/custom/V8MutationObserverCustom.cpp:
501         (WebCore::V8MutationObserver::constructorCallback):
502         * dom/MutationObserver.cpp:
503         (WebCore::MutationObserver::create):
504         (WebCore::MutationObserver::MutationObserver):
505         (WebCore::MutationObserver::observationStarted):
506         (WebCore::MutationObserver::observationEnded):
507         * dom/MutationObserver.h:
508         (WebCore):
509         * dom/MutationObserver.idl:
510
511 2012-11-15  Tony Chang  <tony@chromium.org>
512
513         Generate Settings from a .in file
514         https://bugs.webkit.org/show_bug.cgi?id=100393
515
516         Reviewed by Adam Barth.
517
518         Generate most settings from an .in file to reduce human mistakes and
519         to make it easier to add/remove new settings.
520
521         I only moved settings that are easy to move at this point.  There are many more that
522         have some minor naming inconsistencies that we can also move to Settings.in, but I'll
523         do that in a follow up patch.
524
525         This doesn't generate SettingInternals.* yet-- we can do that in a follow up patch.
526
527         No new tests, this is a refactor.
528
529         * CMakeLists.txt:
530         * DerivedSources.make: Run make_settings.pl.
531         * DerivedSources.pri: Run make_settings.pl.
532         * GNUmakefile.am: Run make_settings.pl.
533         * GNUmakefile.list.am:
534         * WebCore.exp.in: Remove functions that are now inline in the header.
535         * WebCore.gyp/WebCore.gyp: Run action_makenames.py, which will run make_settings.pl.
536         * WebCore.gyp/scripts/action_makenames.py:
537         (main): Allow make_settings.pl.
538         * WebCore.order: Remove functions that are now inline in the header.
539         * html/ValidationMessage.cpp:
540         (WebCore::ValidationMessage::setMessageDOMAndStartTimer): Fix a typo in "magnification".
541         * page/Settings.cpp:
542         (WebCore::Settings::Settings): Replace generated settings with SETTINGS_INITIALIZER_LIST.
543         * page/Settings.h:
544         (Settings): Replace generated settings with SETTINGS_GETTERS_AND_SETTERS and SETTINGS_MEMBER_VARIABLES.
545         * page/Settings.in: Added.
546         * page/make_settings.pl: Added.
547         (defaultItemFactory):
548         (generateCode):
549         (generateHeader): Use a similar model as make_names.pl.
550         (printConditionalMacros):
551         (printGettersAndSetters):
552         (printMemberVariables):
553         (printGetterAndSetter):
554         (printInitializerList):
555         (printInitializer):
556
557 2012-11-15  Alpha Lam  <hclam@chromium.org>
558
559         [chromium] Refactoring to move logic of creating lazy decoded SkBitmap into DeferredImageDecoder
560         https://bugs.webkit.org/show_bug.cgi?id=102019
561
562         Reviewed by Stephen White.
563
564         Goal of this change is to keep ImageDecodingStore clean and only do
565         image caching. Logic of creating lazily decoded SkBitmaps is moved into
566         DeferredImageDecoder.
567
568         In particular these two methods are moved:
569         - ImageDecodingStore::createLazyDecodedSkBitmap
570         - ImageDecodingStore::resizeLazyDecodedSkBitmap
571
572         No new tests. There is no new code (really). It is just moved from
573         ImageDecodingStore to DeferredImageDecoder.
574
575         No change in behavior. Code is tested with:
576         Unit tests: webkit_unit_tests
577         Layout test: platform/chromium/virtual/deferred
578
579         * platform/graphics/chromium/DeferredImageDecoder.cpp:
580         (WebCore::DeferredImageDecoder::isLazyDecoded):
581         (WebCore):
582         (WebCore::DeferredImageDecoder::resizeLazyDecodedSkBitmap):
583         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
584         (WebCore::DeferredImageDecoder::setData):
585         (WebCore::DeferredImageDecoder::createLazyDecodedSkBitmap):
586         * platform/graphics/chromium/DeferredImageDecoder.h:
587         (WebCore):
588         (DeferredImageDecoder):
589         * platform/graphics/chromium/ImageDecodingStore.cpp:
590         * platform/graphics/chromium/ImageDecodingStore.h:
591         (ImageDecodingStore):
592         * platform/graphics/chromium/ImageFrameGenerator.cpp:
593         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
594         * platform/graphics/chromium/ImageFrameGenerator.h:
595         (WebCore::ImageFrameGenerator::create):
596         (ImageFrameGenerator):
597         * platform/graphics/skia/NativeImageSkia.cpp:
598         (WebCore::NativeImageSkia::resizedBitmap):
599
600 2012-11-15  Roger Fong  <roger_fong@apple.com>
601
602         Unreviewed. Build fix for Windows after r134767.
603
604         Update vsprops and vcproj files to reflect changes to file locations in r134767.
605
606         * WebCore.vcproj/WebCore.vcproj:
607         * WebCore.vcproj/WebCoreCommon.vsprops:
608
609 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
610
611         Track subframe count to avoid traversing the tree when there's no subframes
612         https://bugs.webkit.org/show_bug.cgi?id=101821
613
614         Reviewed by Ojan Vafai.
615
616         Bug 101619 showed a 9-14% improvement from not walking the children during
617         removeChild looking for frames when there's known to be no frames. The fix
618         in that bug only avoids this walk when the whole document has no frames, this
619         patch extends it to skip traversing subtrees that have no iframes by hooking
620         the frame assignment to walk up the tree and keep track of the count of frames
621         in the subtree on contentFrame assignment and then decrement it on disconnect.
622
623         No new tests, this is just a perf refactor.
624
625         * dom/ContainerNode.cpp:
626         (WebCore::willRemoveChildren):
627         * dom/ContainerNodeAlgorithms.cpp:
628         (WebCore::ChildFrameDisconnector::collectFrameOwners):
629         * dom/ContainerNodeAlgorithms.h:
630         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
631         (ChildFrameDisconnector):
632         (WebCore::ChildFrameDisconnector::collectFrameOwners):
633           Renamed from collectDescendant() to better reflect what it really does.
634         (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
635           Renamed from disconnect() to better reflect what it really does.
636         (WebCore::ChildFrameDisconnector::disconnect):
637           New method that does the collection of frame owners on either the root
638           or only it's descendants.
639         * dom/Node.cpp:
640         (WebCore::Node::connectedSubframeCount):
641         (WebCore::Node::incrementConnectedSubframeCount):
642         (WebCore::Node::decrementConnectedSubframeCount):
643         * dom/Node.h:
644         * dom/NodeRareData.h:
645         (WebCore::NodeRareData::NodeRareData):
646         (WebCore::NodeRareData::connectedSubframeCount):
647         (WebCore::NodeRareData::incrementConnectedSubframeCount):
648         (WebCore::NodeRareData::decrementConnectedSubframeCount):
649         * html/HTMLFrameOwnerElement.cpp:
650         (WebCore::HTMLFrameOwnerElement::setContentFrame):
651         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
652
653 2012-11-15  Alpha Lam  <hclam@chromium.org>
654
655         [chromium] WebGL texImage2D fails with deferred image decoding
656         https://bugs.webkit.org/show_bug.cgi?id=102310
657
658         Reviewed by Kenneth Russell.
659
660         Skia's implementation of GraphicsContext3D::getImageData() uses ImageSource
661         to decode an image. When deferred image decoding is enabled this class
662         generates an ImageFrame marked as incomplete, which WebGL rejects. This results
663         in failing of texImage2D.
664
665         This change uses ImageDecoder directly instead of ImageSource. This skips
666         the code path of deferred image decoding. This behavior is correct because
667         GraphicsContext3D wants to decode the image differently with alpha not
668         premultiplied and color profile applied optionally.
669
670         Added a test to prove this change fixed the bug.
671
672         Test: fast/images/webgl-teximage2d.html
673
674         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
675         (WebCore::GraphicsContext3D::getImageData):
676
677 2012-11-15  Jer Noble  <jer.noble@apple.com>
678
679         Further unreviewed build fix. Add explicit static_casts to avoid implicit precision warnings.
680
681         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
682         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
683
684 2012-11-15  Jer Noble  <jer.noble@apple.com>
685
686         Unreviewed build fix. Avoid implicit precision and unused parameter warnings.
687
688         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
689         (WebCore::WebCoreAVFResourceLoader::responseReceived):
690         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
691
692 2012-11-15  Adam Barth  <abarth@webkit.org>
693
694         [V8] We shouldn't call deprecated V8 APIs
695         https://bugs.webkit.org/show_bug.cgi?id=102407
696
697         Reviewed by Eric Seidel.
698
699         This patch was written by Sven Panne on the V8 team. He would prefer
700         that we not call deprecated V8 APIs. This patch updates these call
701         sites to more modern idioms.
702
703         * bindings/scripts/CodeGeneratorV8.pm:
704         (GenerateConstructorGetter):
705         (GenerateImplementation):
706         * bindings/scripts/test/V8/V8TestObj.cpp:
707         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
708         * bindings/v8/PageScriptDebugServer.cpp:
709         (WebCore::PageScriptDebugServer::addListener):
710         * bindings/v8/ScriptController.cpp:
711         (WebCore::ScriptController::setContextDebugId):
712         (WebCore::ScriptController::contextDebugId):
713         * bindings/v8/ScriptProfiler.cpp:
714         (WebCore::ScriptProfiler::objectByHeapObjectId):
715             - This code doesn't seem to do anything anymore.
716         * bindings/v8/V8DOMConfiguration.h:
717         (WebCore::V8DOMConfiguration::configureAttribute):
718         * bindings/v8/V8DOMWindowShell.cpp:
719         (WebCore::setInjectedScriptContextDebugId):
720         * bindings/v8/V8DOMWrapper.cpp:
721         (WebCore::V8DOMWrapper::maybeDOMWrapper):
722         (WebCore::V8DOMWrapper::isWrapperOfType):
723         * bindings/v8/V8EventListenerList.h:
724         (WebCore::V8EventListenerList::doFindWrapper):
725         (WebCore::V8EventListenerList::findOrCreateWrapper):
726         * bindings/v8/WorkerContextExecutionProxy.cpp:
727         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
728         * bindings/v8/WrapperTypeInfo.h:
729         (WebCore::WrapperTypeInfo::unwrap):
730
731 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
732
733         Unreviewed, rolling out r134800 and r134805.
734         http://trac.webkit.org/changeset/134800
735         http://trac.webkit.org/changeset/134805
736         https://bugs.webkit.org/show_bug.cgi?id=102417
737
738         This patch broke chromium port (Requested by jianli on
739         #webkit).
740
741         * Modules/mediastream/RTCPeerConnection.cpp:
742         (WebCore::RTCPeerConnection::RTCPeerConnection):
743         (WebCore::RTCPeerConnection::createOffer):
744         (WebCore::RTCPeerConnection::createAnswer):
745         (WebCore::RTCPeerConnection::setLocalDescription):
746         (WebCore::RTCPeerConnection::localDescription):
747         (WebCore::RTCPeerConnection::setRemoteDescription):
748         (WebCore::RTCPeerConnection::remoteDescription):
749         (WebCore::RTCPeerConnection::updateIce):
750         (WebCore::RTCPeerConnection::addIceCandidate):
751         (WebCore::RTCPeerConnection::readyState):
752         (WebCore::RTCPeerConnection::iceState):
753         (WebCore::RTCPeerConnection::addStream):
754         (WebCore::RTCPeerConnection::close):
755         (WebCore::RTCPeerConnection::stop):
756         (WebCore::RTCPeerConnection::changeReadyState):
757         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
758         * Modules/mediastream/RTCPeerConnection.h:
759         (RTCPeerConnection):
760         * Modules/mediastream/RTCPeerConnection.idl:
761         * dom/EventNames.h:
762         (WebCore):
763         * platform/mediastream/RTCDataChannelDescriptor.cpp:
764         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
765         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
766         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
767         (RTCPeerConnectionHandlerClient):
768         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
769         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
770         (RTCPeerConnectionHandlerChromium):
771
772 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
773
774         Remove Node::aboutToUnload and be more explicit about what it was for
775         https://bugs.webkit.org/show_bug.cgi?id=102357
776
777         Reviewed by Ryosuke Niwa.
778
779         Node::aboutToUnload was confusingly named because it was only called on
780         the focused node, and it really only existed to support notifying the
781         embedder that inputs should stop being editable on unload. Instead add
782         a new method to HTMLInputElement that ends editing and call that
783         explicitly in the FrameLoader so it's clear what this is about.
784
785         No new tests, this is just a refactoring.
786
787         * dom/Node.h:
788         * html/HTMLInputElement.cpp:
789         (WebCore::HTMLInputElement::endEditing):
790             New method that handles finishing editing.
791         * html/HTMLInputElement.h:
792         (HTMLInputElement):
793         * html/TextFieldInputType.cpp:
794         (WebCore::TextFieldInputType::handleBlurEvent):
795             Use the new method to reduce code duplication.
796         * loader/FrameLoader.cpp:
797         (WebCore::FrameLoader::stopLoading):
798             Be explicit about what this check was for.
799
800 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
801
802         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
803         https://bugs.webkit.org/show_bug.cgi?id=102386
804
805         Reviewed by Adam Barth.
806
807         Existing tests expanded to cover patch.
808
809         * platform/mediastream/RTCDataChannelDescriptor.cpp:
810         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
811         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
812         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
813         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
814         (WebCore):
815         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
816         (WebKit):
817         (RTCPeerConnectionHandlerChromium):
818
819 2012-11-15  Rick Byers  <rbyers@chromium.org>
820
821         No tests for changing mouse cursors
822         https://bugs.webkit.org/show_bug.cgi?id=100550
823
824         Reviewed by Brent Fulgham.
825
826         Add infrastructure to keep track of the last set mouse cursor,
827         and then to query it from DumpRenderTree.  Also adds ASSERTs to help ensure
828         we can reliably detect when an uninitialized Cursor object is used (such as
829         the one that can be returned from OptionalCursor in the NoCursorChange scenario).
830
831         Test: fast/events/mouse-cursor.html
832
833         * WebCore.exp.in: Add Cursor copy ctor export
834         * page/EventHandler.cpp:
835         (WebCore::OptionalCursor::cursor):
836         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
837         * page/EventHandler.h:
838         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
839         * platform/Cursor.h:
840         (WebCore::Cursor::Cursor): Mark uninitialized cursor types as invalid.
841         (WebCore::Cursor::type): Assert cursor type is valid.
842         * testing/Internals.cpp:
843         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
844         (WebCore):
845         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
846         * testing/Internals.h: Declare getCurrentCursorInfo
847         * testing/Internals.idl: Declare getCurrentCursorInfo
848
849 2012-11-13  Jer Noble  <jer.noble@apple.com>
850
851         Support loading of blob URLs in AVFoundation.
852         https://bugs.webkit.org/show_bug.cgi?id=102182
853
854         Reviewed by Eric Carlson.
855
856         Add support for BLOB (and other non-natively supported schemed) URLs through the AVAssetResourceLoader API.
857
858         Test: media/video-src-blob.html
859
860         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
861         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
862         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Only go down the encrypted
863             media path if the key scheme is skp://.
864         (WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest): Added.  Cancel resource loading if
865             the media engine requests it.
866         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Use the new, non-deprecated API.
867         
868         Use the dispatch_main_queue() as the AVAssetResourceLoadDelegate queue now that <rdar://problem/12362461> is fixed.
869         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
870         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
871         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
872         (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
873
874         Add a new helper class to manage loading the CachedRawResource and feed the incoming
875         data to the AVAssetResourceLoader.
876         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Added.
877         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: Added.
878         (WebCore::WebCoreAVFResourceLoader::create): Simple factory.
879         (WebCore::WebCoreAVFResourceLoader::WebCoreAVFResourceLoader): Simple constructor.
880         (WebCore::WebCoreAVFResourceLoader::~WebCoreAVFResourceLoader): Simple destructor.
881         (WebCore::WebCoreAVFResourceLoader::startLoading): Tell the cachedResourceLoader to schedule loading.
882         (WebCore::WebCoreAVFResourceLoader::stopLoading): Remove this as a client of the resource.
883         (WebCore::WebCoreAVFResourceLoader::responseReceived): Fill in the contentInformation field of the 
884             AVAssetResourceLoadingRequest.
885         (WebCore::WebCoreAVFResourceLoader::dataReceived): Call fulfillRequestWithResource.
886         (WebCore::WebCoreAVFResourceLoader::notifyFinished): Tell the AVAssetResourceLoadingRequest that loading
887             has completed.
888         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): Fill in (if possible) the dataRequest
889             field of the AVAssetResourceLoadingRequest.
890
891         Add a MediaPlayerClient method allowing MediaPlayerPrivate subclasses to access the HTMLMediaElement's
892         document's cachedResourceLoader.
893         * html/HTMLMediaElement.cpp:
894         (WebCore::HTMLMediaElement::mediaPlayerCachedResourceLoader):
895         * html/HTMLMediaElement.h:
896         * platform/graphics/MediaPlayer.cpp:
897         (WebCore::MediaPlayer::cachedResourceLoader):
898         * platform/graphics/MediaPlayer.h:
899         (WebCore::MediaPlayerClient::mediaPlayerCachedResourceLoader):
900
901         Add a convenience method to convert from MIME type -> UTI.
902         * platform/network/mac/UTIUtilities.h:
903         * platform/network/mac/UTIUtilities.mm:
904         (WebCore::UTIFromMIMEType):
905
906         Add new files to project.
907         * WebCore.xcodeproj/project.pbxproj:
908
909 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
910
911         Remove initiallyFitToViewport attribute
912         https://bugs.webkit.org/show_bug.cgi?id=102392
913
914         Reviewed by Noam Rosenthal.
915
916         Remove the initiallyFitToViewport which shouldn't have been
917         added in the first place. We now reset userScalable to auto (-1)
918         in case it was not explicitly set by the web author.
919
920         Same behavior, covered by existing tests.
921
922         * dom/ViewportArguments.cpp:
923         (WebCore::ViewportArguments::resolve):
924         * dom/ViewportArguments.h:
925         (ViewportAttributes):
926
927 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
928
929         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
930         https://bugs.webkit.org/show_bug.cgi?id=102382
931
932         Reviewed by Adam Barth.
933
934         Updating readyState & iceState, and adding iceGatheringState.
935         Also safeguarding the event timer callback.
936
937         Patch covered by existing tests.
938
939         * Modules/mediastream/RTCPeerConnection.cpp:
940         (WebCore::RTCPeerConnection::RTCPeerConnection):
941         (WebCore::RTCPeerConnection::createOffer):
942         (WebCore::RTCPeerConnection::createAnswer):
943         (WebCore::RTCPeerConnection::setLocalDescription):
944         (WebCore::RTCPeerConnection::localDescription):
945         (WebCore::RTCPeerConnection::setRemoteDescription):
946         (WebCore::RTCPeerConnection::remoteDescription):
947         (WebCore::RTCPeerConnection::updateIce):
948         (WebCore::RTCPeerConnection::addIceCandidate):
949         (WebCore::RTCPeerConnection::readyState):
950         (WebCore::RTCPeerConnection::iceGatheringState):
951         (WebCore):
952         (WebCore::RTCPeerConnection::iceState):
953         (WebCore::RTCPeerConnection::addStream):
954         (WebCore::RTCPeerConnection::close):
955         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
956         (WebCore::RTCPeerConnection::stop):
957         (WebCore::RTCPeerConnection::changeReadyState):
958         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
959         * Modules/mediastream/RTCPeerConnection.h:
960         (RTCPeerConnection):
961         * Modules/mediastream/RTCPeerConnection.idl:
962         * dom/EventNames.h:
963         (WebCore):
964         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
965         (RTCPeerConnectionHandlerClient):
966         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
967         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
968         (WebCore):
969         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
970         (RTCPeerConnectionHandlerChromium):
971
972 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
973
974         Unreviewed, rolling out r134649 and r134665.
975         http://trac.webkit.org/changeset/134649
976         http://trac.webkit.org/changeset/134665
977         https://bugs.webkit.org/show_bug.cgi?id=102413
978
979         Broke a ton of downstream chromium tests (Requested by japhet
980         on #webkit).
981
982         * loader/DocumentLoader.cpp:
983         (WebCore::DocumentLoader::DocumentLoader):
984         (WebCore::DocumentLoader::~DocumentLoader):
985         (WebCore::DocumentLoader::finishedLoading):
986         (WebCore::DocumentLoader::clearMainResourceLoader):
987         (WebCore::DocumentLoader::isLoadingInAPISense):
988         (WebCore::DocumentLoader::documentURL):
989         (WebCore::DocumentLoader::isLoadingMainResource):
990         (WebCore::DocumentLoader::startLoadingMainResource):
991         * loader/DocumentLoader.h:
992         (DocumentLoader):
993         * loader/FrameLoader.cpp:
994         (WebCore::FrameLoader::FrameLoader):
995         (WebCore::FrameLoader::init):
996         * loader/FrameLoaderStateMachine.cpp:
997         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
998         * loader/FrameLoaderStateMachine.h:
999         * loader/MainResourceLoader.cpp:
1000         (WebCore::shouldLoadAsEmptyDocument):
1001         (WebCore):
1002         (WebCore::MainResourceLoader::continueAfterContentPolicy):
1003         (WebCore::MainResourceLoader::didReceiveResponse):
1004         (WebCore::MainResourceLoader::didFinishLoading):
1005         (WebCore::MainResourceLoader::handleEmptyLoad):
1006         (WebCore::MainResourceLoader::loadNow):
1007         (WebCore::MainResourceLoader::load):
1008         * loader/MainResourceLoader.h:
1009         (MainResourceLoader):
1010
1011 2012-11-15  Kentaro Hara  <haraken@chromium.org>
1012
1013         Correct syntax of old-style IDL files
1014         https://bugs.webkit.org/show_bug.cgi?id=102335
1015
1016         Reviewed by Adam Barth.
1017
1018         Recently tasak@ corrected an IDL syntax of almost all IDL files.
1019         We should correct the rest of them.
1020
1021         No tests. No change in behavior.
1022
1023         * html/canvas/OESElementIndexUint.idl:
1024         * page/PerformanceMark.idl:
1025         * page/PerformanceMeasure.idl:
1026
1027 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
1028
1029         Remove isHTMLInputElement since it's unused and toInputElement exists 
1030         https://bugs.webkit.org/show_bug.cgi?id=102358
1031
1032         Reviewed by Ojan Vafai.
1033
1034         Remove isHTMLInputElement as no one uses it. Everyone just uses
1035         Node::toInputElement and checks for a 0 return value instead.
1036
1037         toInputElement is also more reliable as there's no requirement that
1038         subclasses of HTMLInputElement have the tag name of inputTag so using
1039         this method in a check could potentially miss future subclasses with
1040         different tag names, though none exist right now.
1041
1042         No new tests, this just deletes dead code.
1043
1044         * html/HTMLInputElement.h:
1045
1046 2012-11-15  Erik Arvidsson  <arv@chromium.org>
1047
1048         Update DOMException name: NotSupportedError
1049         https://bugs.webkit.org/show_bug.cgi?id=102139
1050
1051         Reviewed by Ojan Vafai.
1052
1053         Patch 9 of 25 to update DOMException name to match the spec and Firefox.
1054
1055         Updated existing tests.
1056
1057         * dom/DOMCoreException.cpp:
1058
1059 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
1060
1061         Remove isHTMLInputElement since it's unused and toInputElement exists 
1062         https://bugs.webkit.org/show_bug.cgi?id=102358
1063
1064         Reviewed by Ojan Vafai.
1065
1066         Remove isHTMLInputElement as no one uses it. Everyone just uses
1067         Node::toInputElement and checks for a 0 return value instead.
1068
1069         toInputElement is also more reliable as there's no requirement that
1070         subclasses of HTMLInputElement have the tag name of inputTag so using
1071         this method in a check could potentially miss future subclasses with
1072         different tag names, though none exist right now.
1073
1074         No new tests, this just deletes dead code.
1075
1076         * html/HTMLInputElement.h:
1077
1078 2012-11-15  Erik Arvidsson  <arv@chromium.org>
1079
1080         Update DOMException name: NoModificationAllowedError
1081         https://bugs.webkit.org/show_bug.cgi?id=102134
1082
1083         Reviewed by Ojan Vafai.
1084
1085         Patch 7 of 25 to update DOMException name to match the spec and Firefox.
1086
1087         Updated existing tests.
1088
1089         * dom/DOMCoreException.cpp:
1090
1091 2012-11-15  Miguel Garcia  <miguelg@chromium.org>
1092
1093         Remove unnecesary dependencies INPUT_TYPE_COLOR
1094         https://bugs.webkit.org/show_bug.cgi?id=102379
1095
1096         Reviewed by Darin Adler.
1097
1098         Platforms should be able to enable INPUT_TYPE_COLOR without enabling
1099         CALENDAR_PICKER and DATALIST_ELEMENT. Before this patch however there would be
1100         compile errors in such configuration.
1101
1102         No new tests since this is not adding any extra functionality.
1103
1104         * WebCore.gyp/WebCore.gyp:
1105         * html/ColorInputType.cpp:
1106         (WebCore::ColorInputType::shouldShowSuggestions):
1107         * make-file-arrays.py:
1108         (main):
1109
1110 2012-11-15  Eric Carlson  <eric.carlson@apple.com>
1111
1112         Update computed line position algorithm
1113         https://bugs.webkit.org/show_bug.cgi?id=93779
1114
1115         Reviewed by Philippe Normand.
1116
1117         Compute the position of a text track relative to rendered tracks. This is needed to position
1118         cues correctly when there is more than one text track.
1119
1120         Test: media/track/track-cue-container-rendering-position.html
1121
1122         * html/track/TextTrack.cpp:
1123         (WebCore::TextTrack::invalidateTrackIndex): Invalidate both cached track indices.
1124         (WebCore::TextTrack::trackIndexRelativeToRenderedTracks): Return the index of the track relative
1125             to other rendered tracks.
1126         * html/track/TextTrack.h:
1127
1128         * html/track/TextTrackCue.cpp:
1129         (WebCore::TextTrackCue::calculateComputedLinePosition): Use trackIndexRelativeToRenderedTracks()
1130             instead of trackIndex() so cues are positioned correctly.
1131
1132         * html/track/TextTrackList.cpp:
1133         (TextTrackList::getTrackIndex): Change return type from unsigned to int.
1134         (TextTrackList::getTrackIndexRelativeToRenderedTracks): New.
1135         * html/track/TextTrackList.h:
1136
1137 2012-11-15  Dominik R√∂ttsches  <dominik.rottsches@intel.com>
1138
1139         [EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
1140         https://bugs.webkit.org/show_bug.cgi?id=101323
1141
1142         Reviewed by Martin Robinson.
1143
1144         Removing ifdef since we bumped Harfbuzz dependency. This is the
1145         real fix replacing the previous workaround of having a Chromium
1146         specific ifdef here, since Chromium uses a newer HarfBuzz version
1147         already.
1148
1149         No new tests, covered by css3/flexbox/inline-flex-crash.html
1150         which will not crash anymore even with the ifdef removed.
1151
1152         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
1153         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
1154
1155 2012-11-15  Andreas Kling  <kling@webkit.org>
1156
1157         REGRESSION(r134408): Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement().
1158         <http://webkit.org/b/102304>
1159
1160         Reviewed by Anders Carlsson.
1161
1162         Test: fast/dom/cloneNode-below-body-attribute-merging.html
1163
1164         * html/parser/HTMLConstructionSite.cpp:
1165         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
1166
1167             Use Element::fastHasAttribute() to determine if a given attribute is already present on the element
1168             we're merging attributes into.
1169
1170         * dom/ElementAttributeData.h:
1171         (ElementAttributeData):
1172
1173             Remove a now-unnecessary friend declaration.
1174
1175 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
1176
1177         Prevent creation of detached frames in ShadowRoot
1178         https://bugs.webkit.org/show_bug.cgi?id=102333
1179
1180         Reviewed by Dimitri Glazkov.
1181
1182         Similar to Bug 94717 you can create a loaded iframe in a detached
1183         subtree using ShadowRoot. To fix this we just need to make
1184         SubframeLoadingDisabler traverse through shadow boundaries.
1185
1186         Test: fast/frames/detached-shadow-frame.html
1187
1188         * html/HTMLFrameOwnerElement.h:
1189         (WebCore::SubframeLoadingDisabler::canLoadFrame):
1190
1191 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
1192
1193         Changing pseudoClass (:visited) should cause distribution.
1194         https://bugs.webkit.org/show_bug.cgi?id=101700
1195
1196         Reviewed by Dimitri Glazkov.
1197
1198         When href attribute of an anchor or area element is changed, we have to invalidate distribution.
1199
1200         Since we would like to check a few pseudoClasses at once, we make the argument of
1201         SelectRuleFeatureSet::hasSelectorFor int.
1202
1203         Tests: fast/dom/shadow/pseudoclass-update-visited-anchor.html
1204                fast/dom/shadow/pseudoclass-update-visited-area.html
1205
1206         * dom/ElementShadow.cpp:
1207         (WebCore::invalidateParentDistributionIfNecessary):
1208         * dom/ElementShadow.h:
1209         (WebCore):
1210         * html/HTMLAnchorElement.cpp:
1211         (WebCore::HTMLAnchorElement::parseAttribute):
1212         * html/shadow/SelectRuleFeatureSet.h:
1213         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
1214
1215 2012-11-15  Balazs Kelemen  <kbalazs@webkit.org>
1216
1217         Coordinated Graphics: support the "freeze animations" API
1218         https://bugs.webkit.org/show_bug.cgi?id=100703
1219
1220         Reviewed by Noam Rosenthal.
1221
1222         Make animations resumable in Coordinated Graphics.
1223         Pausing was already implemented.
1224
1225         Tested with animations and transitions tests. No tests to be
1226         unskipped because these tests has been working without this API
1227         as well (although this is the preferred way).
1228
1229         * platform/graphics/GraphicsLayerAnimation.cpp:
1230         (WebCore::GraphicsLayerAnimation::apply):
1231         (WebCore::GraphicsLayerAnimation::computeTotalRunningTime):
1232         Do not consider the time while we was suspended as part of
1233         the total running time.
1234         (WebCore):
1235         (WebCore::GraphicsLayerAnimation::resume):
1236         (WebCore::GraphicsLayerAnimations::suspend):
1237         (WebCore::GraphicsLayerAnimations::resume):
1238         * platform/graphics/GraphicsLayerAnimation.h:
1239         (GraphicsLayerAnimation):
1240         (GraphicsLayerAnimations):
1241
1242 2012-11-15  Gabor Rapcsanyi  <rgabor@webkit.org>
1243
1244         Relocate the ARM NEON SVG filter optimizations
1245         https://bugs.webkit.org/show_bug.cgi?id=102214
1246
1247         Reviewed by Zoltan Herczeg.
1248
1249         Relocate the ARM filter optimizations into platform/graphics/cpu/arm
1250         to keep them together with the others.
1251         From now all graphics optimization for ARM NEON should go here.
1252
1253         * CMakeLists.txt:
1254         * GNUmakefile.am:
1255         * GNUmakefile.list.am:
1256         * Target.pri:
1257         * WebCore.gyp/WebCore.gyp:
1258         * WebCore.gypi:
1259         * WebCore.pri:
1260         * WebCore.xcodeproj/project.pbxproj:
1261         * platform/graphics/cpu/arm/filters/FEBlendNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEBlendNEON.h.
1262         (WebCore):
1263         (FEBlendUtilitiesNEON):
1264         (WebCore::FEBlendUtilitiesNEON::div255):
1265         (WebCore::FEBlendUtilitiesNEON::normal):
1266         (WebCore::FEBlendUtilitiesNEON::multiply):
1267         (WebCore::FEBlendUtilitiesNEON::screen):
1268         (WebCore::FEBlendUtilitiesNEON::darken):
1269         (WebCore::FEBlendUtilitiesNEON::lighten):
1270         (WebCore::FEBlend::platformApplyNEON):
1271         * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FECompositeArithmeticNEON.h.
1272         (WebCore):
1273         (WebCore::FEComposite::computeArithmeticPixelsNeon):
1274         (WebCore::FEComposite::platformArithmeticNeon):
1275         * platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEGaussianBlurNEON.h.
1276         (WebCore):
1277         (WebCore::boxBlurNEON):
1278         * platform/graphics/cpu/arm/filters/FELightingNEON.cpp: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp.
1279         (WebCore):
1280         (WebCore::feLightingConstantsForNeon):
1281         (WebCore::FELighting::platformApplyNeonWorker):
1282         (WebCore::FELighting::getPowerCoefficients):
1283         * platform/graphics/cpu/arm/filters/FELightingNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h.
1284         (WebCore):
1285         (FELightingFloatArgumentsForNeon):
1286         (FELightingPaintingDataForNeon):
1287         (WebCore::FELighting::platformApplyNeon):
1288         * platform/graphics/cpu/arm/filters/NEONHelpers.h: Renamed from Source/WebCore/platform/graphics/filters/arm/NEONHelpers.h.
1289         (WebCore):
1290         (WebCore::loadRGBA8AsFloat):
1291         (WebCore::storeFloatAsRGBA8):
1292
1293 2012-11-15  Mike West  <mkwst@chromium.org>
1294
1295         We should trigger a console warning when we encounter invalid sandbox flags.
1296         https://bugs.webkit.org/show_bug.cgi?id=101956
1297
1298         Reviewed by Adam Barth.
1299
1300         A developer who writes '<iframe sandbox="allowScripts">' probably has
1301         something in mind other than what the browser interprets. In these
1302         situations, we should log a console warning that notes 'allowScripts'
1303         is an invalid sandbox flag ('allow-scripts' is probably what she
1304         meant).
1305
1306         This patch does the simplest thing possible: it throws a warning that
1307         lists the invalid flags encountered for sandbox attributes on iframes,
1308         and for sandbox Content Security Policy directives.
1309
1310         Tests: http/tests/security/contentSecurityPolicy/sandbox-invalid-header.html
1311                http/tests/security/sandboxed-iframe-invalid.html
1312
1313         * dom/SecurityContext.cpp:
1314         (WebCore::SecurityContext::parseSandboxPolicy):
1315         * dom/SecurityContext.h:
1316         (SecurityContext):
1317             Accept a new out parameter, invalidTokensErrorMessage. If invalid
1318             tokens are encountered, build an error message string, and pass it
1319             back to the caller through this parameter.
1320         * html/HTMLIFrameElement.cpp:
1321         (WebCore::HTMLIFrameElement::parseAttribute):
1322         * page/ContentSecurityPolicy.cpp:
1323         (WebCore::CSPDirectiveList::applySandboxPolicy):
1324             When applying a sandbox policy, pass a string into
1325             SecurityContext::parseSandboxPolicy to grab any errors that might
1326             be encountered, and log a warning in that event.
1327         (WebCore::ContentSecurityPolicy::reportInvalidSandboxFlags):
1328         (WebCore):
1329         * page/ContentSecurityPolicy.h:
1330             Adding a new method to report invalid sandbox flags.
1331
1332 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1333
1334         Rename member vars in ViewportArgument to match css-device-adapt
1335         https://bugs.webkit.org/show_bug.cgi?id=102355
1336
1337         Reviewed by Gyuyoung Kim.
1338
1339         No behavior change, thus no new tests.
1340
1341         * dom/ViewportArguments.cpp:
1342         (WebCore::ViewportArguments::resolve):
1343         (WebCore::setViewportFeature):
1344         * dom/ViewportArguments.h:
1345         (WebCore::ViewportArguments::ViewportArguments):
1346         (ViewportArguments):
1347         (WebCore::ViewportArguments::operator==):
1348
1349 2012-11-15  Andrey Adaikin  <aandrey@chromium.org>
1350
1351         Web Inspector: [WebGL] cloneNode for images with revoked Blob URIs fails
1352         https://bugs.webkit.org/show_bug.cgi?id=102366
1353
1354         Reviewed by Vsevolod Vlasov.
1355
1356         * inspector/InjectedScriptCanvasModuleSource.js:
1357         (.):
1358
1359 2012-11-15  Mark Rowe  <mrowe@apple.com>
1360
1361         Build fix.
1362
1363         Disable deprecation warnings in a few places that need it.
1364
1365         * platform/graphics/ca/mac/TileCache.mm:
1366         (WebCore::TileCache::drawRepaintCounter):
1367         * platform/graphics/mac/FontMac.mm:
1368         (WebCore::showGlyphsWithAdvances):
1369         * platform/graphics/mac/WebLayer.mm:
1370         (drawLayerContents):
1371
1372 2012-11-15  Kent Tamura  <tkent@chromium.org>
1373
1374         Support stand-alone month names in calendar picker
1375         https://bugs.webkit.org/show_bug.cgi?id=102196
1376
1377         Reviewed by Kentaro Hara.
1378
1379         We have showed non stand-alone month names in any locales. However
1380         we should show stand-alone month names in some locales such as
1381         Russian.
1382
1383         This patch introduce PagePopupController::formatMonth. It is
1384         exposed to page-popups, and format year-month pairs in the same
1385         way as input[type=month].
1386
1387         No new tests. Affects platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html.
1388
1389         * Resources/pagepopups/calendarPicker.js:
1390         (Month.prototype.toLocaleString):
1391         Calls pagePopupController.formatMonth except Japanese locale.
1392         (handleArgumentsTimeout):
1393         Remove unnecessary default monthLabels.
1394         * page/PagePopupController.cpp:
1395         (WebCore::PagePopupController::formatMonth): Added.
1396         * page/PagePopupController.h:
1397         (PagePopupController): Declare formatMonth.
1398         * page/PagePopupController.idl: Add formatMonth.
1399
1400 2012-11-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1401
1402         Web Inspector: Fix new JS compiler warnings.
1403         https://bugs.webkit.org/show_bug.cgi?id=102341
1404
1405         Reviewed by Yury Semikhatsky.
1406
1407         New version of compiler finds new inconsistencies.
1408
1409         * inspector/front-end/DOMAgent.js: Replaced 2 simiar cases with loop.
1410         * inspector/front-end/DOMBreakpointsSidebarPane.js:
1411         Declared instance property on WebInspector.
1412         * inspector/front-end/Script.js: Normalized parameter notation.
1413
1414 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1415
1416         Unreviewed build fix.
1417
1418         * dom/ViewportArguments.cpp:
1419         (WebCore::convertToUserSpace): Add static
1420
1421 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1422
1423         Refactor ViewportArguments to only use CSS units
1424         https://bugs.webkit.org/show_bug.cgi?id=102287
1425
1426         Reviewed by Noam Rosenthal.
1427
1428         Refactor the ViewportArgument code to use a member method for
1429         resolving the viewport. This new method only uses arguments in
1430         CSS units.
1431
1432         This is preparation for adding the CSS Device Adaptation support.
1433
1434         Tested by existing tests fast/viewport.
1435
1436         * dom/ViewportArguments.cpp:
1437         (WebCore::clampLengthValue):
1438         (WebCore::clampScaleValue): New utility functions.
1439         (WebCore::ViewportArguments::resolve):
1440         (WebCore::convertToUserSpace): Added until everyone provides arguments
1441         only in CSS units and not device ones.
1442         (WebCore::computeViewportAttributes):
1443         (WebCore::computeMinimumScaleFactorForContentContained):
1444         (WebCore):
1445         (WebCore::restrictMinimumScaleFactorToViewportSize):
1446         * dom/ViewportArguments.h:
1447         (ViewportArguments):
1448
1449 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org> 
1450
1451         Changing pseudoClass (:disabled) should cause distribution.
1452         https://bugs.webkit.org/show_bug.cgi?id=101901
1453
1454         Reviewed by Hajime Morita.
1455
1456         We have to invalidate distribution when pseudo-class (:disabled) is changed.
1457
1458         According to the HTML5 spec, :disabled will match button, input, select, textarea, optgroup,
1459         option, command, li, and fieldset. However, command is not implemented yet, we skip li and command. li might
1460         have 'disabled' state, but we need a command element to make it 'disabled' state.
1461
1462         Tests: fast/dom/shadow/pseudoclass-update-disabled-button.html
1463                fast/dom/shadow/pseudoclass-update-disabled-fieldset.html
1464                fast/dom/shadow/pseudoclass-update-disabled-input.html
1465                fast/dom/shadow/pseudoclass-update-disabled-optgroup.html
1466                fast/dom/shadow/pseudoclass-update-disabled-option.html
1467                fast/dom/shadow/pseudoclass-update-disabled-select.html
1468                fast/dom/shadow/pseudoclass-update-disabled-textarea.html
1469
1470         * html/HTMLFormControlElement.cpp:
1471         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
1472         * html/HTMLOptGroupElement.cpp:
1473         (WebCore::HTMLOptGroupElement::parseAttribute):
1474         * html/HTMLOptionElement.cpp:
1475         (WebCore::HTMLOptionElement::parseAttribute):
1476
1477 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
1478
1479         Unreviewed, rolling out r134691, r134703, r134715, r134716,
1480         and r134733.
1481         http://trac.webkit.org/changeset/134691
1482         http://trac.webkit.org/changeset/134703
1483         http://trac.webkit.org/changeset/134715
1484         http://trac.webkit.org/changeset/134716
1485         http://trac.webkit.org/changeset/134733
1486         https://bugs.webkit.org/show_bug.cgi?id=102342
1487
1488         "Broke the Apple Windows Debug and GTK builds." (Requested by
1489         dydx on #webkit).
1490
1491         * WebCore.exp.in:
1492         * bindings/js/SerializedScriptValue.h:
1493         * testing/Internals.cpp:
1494         * testing/Internals.h:
1495         (WebCore):
1496         * testing/Internals.idl:
1497
1498 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
1499
1500         Not reviewed: fixing inspector tests under Qt.
1501
1502         * inspector/front-end/TestController.js:
1503         * inspector/front-end/utilities.js:
1504         (.):
1505
1506 2012-11-14  Kentaro Hara  <haraken@chromium.org>
1507
1508         Unreviewed. Rebaselined run-bindings-tests.
1509
1510         * bindings/scripts/test/V8/V8TestNode.h:
1511         (WebCore::toV8Fast):
1512
1513 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
1514
1515         Don't use temporary clip rects when hit testing
1516         https://bugs.webkit.org/show_bug.cgi?id=102329
1517
1518         Reviewed by Beth Dakin.
1519
1520         We now cache clip rects separately for painting, hit testing etc. Hit testing
1521         clip rects are always shrunk to exclude scrollbars (so that hit testing on
1522         the scrollbars works), so we no longer every need to use temporary clip rects
1523         during hit testing.
1524
1525         Added an assertion that the scrollbar relevancy when we computed the clip rects
1526         is the same as that when using them.
1527         
1528         * rendering/RenderLayer.cpp:
1529         (WebCore::RenderLayer::hitTestLayer):
1530         (WebCore::RenderLayer::updateClipRects):
1531         * rendering/RenderLayer.h:
1532         (WebCore::ClipRectsCache::ClipRectsCache):
1533         (ClipRectsCache):
1534
1535 2012-11-14  Dirk Schulze  <krit@webkit.org>
1536
1537         Support animation of basic shape 'polygon'
1538         https://bugs.webkit.org/show_bug.cgi?id=102080
1539
1540         Reviewed by Daniel Bates.
1541
1542         The basic shapes 'circle', 'rectangle' and 'ellipse' are animatable with the committed
1543         patch http://trac.webkit.org/changeset/134352.
1544         This is a follow-up patch to make 'polygon' animatable as well, as long as the number
1545         of vertices between start and end polygon is the same.
1546
1547         Added polygon animation test to existing test:
1548             fast/exclusions/shape-inside/shape-inside-animation.html
1549             css3/masking/clip-path-animation.html
1550
1551         * page/animation/CSSPropertyAnimation.cpp: Forgot to add copyright with last commits.
1552         * rendering/style/BasicShapes.cpp:
1553         (WebCore::BasicShape::canBlend): Polygons are allowed now.
1554         (WebCore::BasicShapePolygon::blend): Interpolate polygon shapes.
1555
1556 2012-11-14  Kentaro Hara  <haraken@chromium.org>
1557
1558         Unreviewed. Fix code generator warnings.
1559
1560         * bindings/scripts/CodeGeneratorV8.pm:
1561         (GenerateFunctionCallback):
1562         (GenerateImplementation):
1563
1564 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
1565
1566         Changing pseudoClass (:checked) should cause distribution.
1567         https://bugs.webkit.org/show_bug.cgi?id=101902
1568
1569         Reviewed by Dimitri Glazkov.
1570
1571         When the 'checked' state is changed, we have to invalidate distribution.
1572
1573         According to the HTML5 spec, :checked should match a checked input[type="checkbox"],
1574         a checked input[type="radio"], a selected option, and commands. However, we don't have a command element yet.
1575
1576         Tests: fast/dom/shadow/pseudoclass-update-checked-input.html
1577                fast/dom/shadow/pseudoclass-update-checked-option.html
1578
1579         * html/HTMLInputElement.cpp:
1580         (WebCore::HTMLInputElement::setChecked):
1581         * html/HTMLOptionElement.cpp:
1582         (WebCore::HTMLOptionElement::setSelectedState):
1583
1584 2012-11-14  Kentaro Hara  <haraken@chromium.org>
1585
1586         [V8] Kill $implClassName from CodeGeneratorV8.pm
1587         https://bugs.webkit.org/show_bug.cgi?id=102312
1588
1589         Reviewed by Adam Barth.
1590
1591         $implClassName and $interfaceName are the same.
1592         Sometimes we are passing both $implClassName and $interfaceName to
1593         subroutines. We can kill $implClassName.
1594
1595         No tests. No change in behavior.
1596
1597         * bindings/scripts/CodeGeneratorV8.pm:
1598         (GenerateOpaqueRootForGC):
1599         (GenerateHeader):
1600         (GenerateDomainSafeFunctionGetter):
1601         (GenerateDomainSafeFunctionSetter):
1602         (GenerateConstructorGetter):
1603         (GenerateNormalAttrGetter):
1604         (GenerateReplaceableAttrSetter):
1605         (GenerateNormalAttrSetter):
1606         (GenerateEventListenerCallback):
1607         (GenerateOverloadedFunctionCallback):
1608         (GenerateFunctionCallback):
1609         (GenerateParametersCheck):
1610         (GenerateOverloadedConstructorCallback):
1611         (GenerateSingleConstructorCallback):
1612         (GenerateConstructorCallback):
1613         (GenerateEventConstructorCallback):
1614         (GenerateTypedArrayConstructorCallback):
1615         (GenerateNamedConstructorCallback):
1616         (GenerateImplementation):
1617         (GenerateFunctionCallString):
1618
1619 2012-11-14  Adam Barth  <abarth@webkit.org>
1620
1621         [V8] We can shave one instruction off toV8Fast
1622         https://bugs.webkit.org/show_bug.cgi?id=102297
1623
1624         Reviewed by Kentaro Hara.
1625
1626         There's no reason to store info.Holder in a local variable. Calling
1627         Holder() is essentially free because it's inlined to an offset read.
1628
1629         I doubt this patch moves the performance needle in any measurable way,
1630         but it makes the code slightly prettier.
1631
1632         * bindings/scripts/CodeGeneratorV8.pm:
1633         (GenerateHeader):
1634         * bindings/scripts/test/V8/V8TestNode.h:
1635         (WebCore::toV8Fast):
1636
1637 2012-11-14  Kentaro Hara  <haraken@chromium.org>
1638
1639         [V8] Get rid of a redundant branch in JSValueToNative()
1640         https://bugs.webkit.org/show_bug.cgi?id=102311
1641
1642         Reviewed by Adam Barth.
1643
1644         No tests. No change in behavior.
1645
1646         * bindings/scripts/CodeGeneratorV8.pm:
1647         (JSValueToNative):
1648         (NativeToJSValue):
1649
1650 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
1651
1652         Changing pseudoClass (:link) should cause distribution
1653         https://bugs.webkit.org/show_bug.cgi?id=101698
1654
1655         Reviewed by Hajime Morita.
1656
1657         CSSSelector :link matches anchor element with href attribute. When href attribute of an anchor element is changed,
1658         we have to invalidate distribution.
1659
1660         According to the HTML spec, :link matches a link element having href attribute, currently we have not implemented it yet.
1661
1662         Tests: fast/dom/shadow/pseudoclass-update-link-anchor.html
1663                fast/dom/shadow/pseudoclass-update-link-area.html
1664
1665         * html/HTMLAnchorElement.cpp:
1666         (WebCore::HTMLAnchorElement::parseAttribute):
1667
1668 2012-11-14  Kentaro Hara  <haraken@chromium.org>
1669
1670         Remove unused functions from CodeGenerator.pm
1671         https://bugs.webkit.org/show_bug.cgi?id=102316
1672
1673         Reviewed by Adam Barth.
1674
1675         No tests. No change in behavior.
1676
1677         * bindings/scripts/CodeGenerator.pm:
1678         (GenerateCompileTimeCheckForEnumsIfNeeded):
1679
1680 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
1681
1682         [BlackBerry] Update BB10 form theme.
1683         https://bugs.webkit.org/show_bug.cgi?id=100760
1684
1685         Reviewed by Rob Buis.
1686
1687         RIM PR 225755
1688         Internally Reviewed by Eli Fidler.
1689         Update checkbox, radio and menulist button style. Adjust border width
1690         and line height.
1691
1692         * platform/blackberry/RenderThemeBlackBerry.cpp:
1693         (WebCore::RenderThemeBlackBerry::adjustMenuListButtonStyle):
1694         * platform/blackberry/RenderThemeBlackBerry.h:
1695         (RenderThemeBlackBerry):
1696
1697 2012-11-14  Erik Arvidsson  <arv@chromium.org>
1698
1699         Update DOMException name: InvalidModificationError
1700         https://bugs.webkit.org/show_bug.cgi?id=102281
1701
1702         Reviewed by Kentaro Hara.
1703
1704         Patch 13 of 25 to update DOMException name to match the spec and Firefox.
1705
1706         DOMExcecption INVALID_MODIFICATION_ERR is not used in our code.
1707
1708         * dom/DOMCoreException.cpp:
1709
1710 2012-11-14  Adam Barth  <abarth@webkit.org>
1711
1712         document variable in Document::axObjectCache is actually the topDocument
1713         https://bugs.webkit.org/show_bug.cgi?id=101966
1714
1715         Reviewed by Chris Fleizach.
1716
1717         Name change requested by Darin Adler.
1718
1719         * dom/Document.cpp:
1720         (WebCore::Document::axObjectCache):
1721
1722 2012-11-14  Joseph Pecoraro  <pecoraro@apple.com>
1723
1724         [CF]: XMLHttpRequest "timeout" events firing as "error" events
1725         https://bugs.webkit.org/show_bug.cgi?id=102271
1726
1727         Reviewed by David Kilzer.
1728
1729         Initialize the tiemout flag if the error results from a timeout
1730         in the USE(CFNETWORK) cases.
1731
1732         No new tests. This is covered by http/tests/xmlhttprequest/timeout
1733         tests on ports that USE(CFNETWORK).
1734
1735         * platform/network/cf/ResourceErrorCF.cpp:
1736         (WebCore::ResourceError::ResourceError):
1737         * platform/network/mac/ResourceErrorMac.mm:
1738         (WebCore::ResourceError::ResourceError):
1739
1740 2012-11-14  Nico Weber  <thakis@chromium.org>
1741
1742         [chromium/mac] Fix drawing of buttons, checkboxes, radio boxes, and steppers when the page is scaled
1743         https://bugs.webkit.org/show_bug.cgi?id=102282
1744
1745         Reviewed by James Robinson.
1746
1747         Chromium uses skia, and skia state is synced with CG context state at
1748         LocalCurrentGraphicsContext construction time. So delay that
1749         construction after context transforms have happened.
1750         (This regressed in http://trac.webkit.org/changeset/125830)
1751
1752         Covered by the new pixel test fast/forms/zoomed-controls.html. I
1753         couldn't find an existing test for this.
1754
1755         * platform/mac/ThemeMac.mm:
1756         (WebCore::paintCheckbox):
1757         (WebCore::paintRadio):
1758         (WebCore::paintButton):
1759
1760 2012-11-14  Mark Lam  <mark.lam@apple.com>
1761
1762         Change JSEventListener::m_jsFunction to be a weak ref.
1763         https://bugs.webkit.org/show_bug.cgi?id=101989.
1764
1765         Reviewed by Geoffrey Garen.
1766
1767         No new tests.
1768
1769         * ForwardingHeaders/heap/SlotVisitor.h: Added.
1770         * bindings/js/JSDOMBinding.h: Added #include <heap/SlotVisitor.h>
1771         * bindings/js/JSEventListener.cpp:
1772         (WebCore::JSEventListener::JSEventListener):
1773         (WebCore::JSEventListener::visitJSFunction):
1774         (WebCore::JSEventListener::operator==):
1775          - Removed the m_wrapper checks in operator==() because they are not
1776            needed. There is no longer any threat of m_jsFunction pointing to
1777            recycled memory. The use of weak refs will ensure that m_jsFunction
1778            is either still holding on to its old memory exclusively, or is 0'ed
1779            out when the GC collects it.
1780         * bindings/js/JSEventListener.h:
1781         (JSEventListener):
1782         (WebCore::JSEventListener::jsFunction):
1783
1784 2012-11-14  Dan Carney  <dcarney@google.com>
1785
1786         [V8] Rename dispatchWrap
1787         https://bugs.webkit.org/show_bug.cgi?id=102240
1788
1789         Reviewed by Adam Barth.
1790
1791         Mostly a rename:
1792         dispatchWrap->wrap
1793         wrapSlow->createWrapper
1794         dispatchWrapCustom->wrap
1795
1796         No new tests. No change in functionality.
1797
1798         * bindings/scripts/CodeGeneratorV8.pm:
1799         (GenerateHeader):
1800         (GenerateNormalAttrGetter):
1801         (GenerateImplementation):
1802         (GenerateToV8Converters):
1803         * bindings/scripts/IDLAttributes.txt:
1804         * bindings/scripts/test/V8/V8Float64Array.cpp:
1805         (WebCore::wrap):
1806         (WebCore::V8Float64Array::createWrapper):
1807         * bindings/scripts/test/V8/V8Float64Array.h:
1808         (V8Float64Array):
1809         (WebCore):
1810         (WebCore::toV8Object):
1811         (WebCore::toV8):
1812         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1813         (WebCore::V8TestActiveDOMObject::createWrapper):
1814         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1815         (V8TestActiveDOMObject):
1816         (WebCore::wrap):
1817         (WebCore::toV8Object):
1818         (WebCore::toV8):
1819         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1820         (WebCore::V8TestCustomNamedGetter::createWrapper):
1821         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1822         (V8TestCustomNamedGetter):
1823         (WebCore::wrap):
1824         (WebCore::toV8Object):
1825         (WebCore::toV8):
1826         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1827         (WebCore::V8TestEventConstructor::createWrapper):
1828         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1829         (V8TestEventConstructor):
1830         (WebCore::wrap):
1831         (WebCore::toV8Object):
1832         (WebCore::toV8):
1833         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1834         (WebCore::V8TestEventTarget::createWrapper):
1835         * bindings/scripts/test/V8/V8TestEventTarget.h:
1836         (V8TestEventTarget):
1837         (WebCore::wrap):
1838         (WebCore::toV8Object):
1839         (WebCore::toV8):
1840         * bindings/scripts/test/V8/V8TestException.cpp:
1841         (WebCore::V8TestException::createWrapper):
1842         * bindings/scripts/test/V8/V8TestException.h:
1843         (V8TestException):
1844         (WebCore::wrap):
1845         (WebCore::toV8Object):
1846         (WebCore::toV8):
1847         * bindings/scripts/test/V8/V8TestInterface.cpp:
1848         (WebCore::V8TestInterface::createWrapper):
1849         * bindings/scripts/test/V8/V8TestInterface.h:
1850         (V8TestInterface):
1851         (WebCore::wrap):
1852         (WebCore::toV8Object):
1853         (WebCore::toV8):
1854         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1855         (WebCore::V8TestMediaQueryListListener::createWrapper):
1856         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1857         (V8TestMediaQueryListListener):
1858         (WebCore::wrap):
1859         (WebCore::toV8Object):
1860         (WebCore::toV8):
1861         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1862         (WebCore::V8TestNamedConstructor::createWrapper):
1863         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1864         (V8TestNamedConstructor):
1865         (WebCore::wrap):
1866         (WebCore::toV8Object):
1867         (WebCore::toV8):
1868         * bindings/scripts/test/V8/V8TestNode.cpp:
1869         (WebCore::V8TestNode::createWrapper):
1870         * bindings/scripts/test/V8/V8TestNode.h:
1871         (V8TestNode):
1872         (WebCore::wrap):
1873         (WebCore::toV8Object):
1874         (WebCore::toV8):
1875         (WebCore::toV8Fast):
1876         * bindings/scripts/test/V8/V8TestObj.cpp:
1877         (WebCore::V8TestObj::createWrapper):
1878         * bindings/scripts/test/V8/V8TestObj.h:
1879         (V8TestObj):
1880         (WebCore::wrap):
1881         (WebCore::toV8Object):
1882         (WebCore::toV8):
1883         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
1884         (WebCore::V8TestOverloadedConstructors::createWrapper):
1885         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
1886         (V8TestOverloadedConstructors):
1887         (WebCore::wrap):
1888         (WebCore::toV8Object):
1889         (WebCore::toV8):
1890         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1891         (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
1892         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1893         (V8TestSerializedScriptValueInterface):
1894         (WebCore::wrap):
1895         (WebCore::toV8Object):
1896         (WebCore::toV8):
1897         * bindings/v8/custom/V8BlobCustom.cpp:
1898         (WebCore::wrap):
1899         * bindings/v8/custom/V8CSSRuleCustom.cpp:
1900         (WebCore::wrap):
1901         * bindings/v8/custom/V8CSSValueCustom.cpp:
1902         (WebCore::wrap):
1903         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
1904         (WebCore::wrap):
1905         * bindings/v8/custom/V8DataViewCustom.cpp:
1906         (WebCore::wrap):
1907         * bindings/v8/custom/V8DocumentCustom.cpp:
1908         (WebCore::wrap):
1909         * bindings/v8/custom/V8ElementCustom.cpp:
1910         (WebCore):
1911         (WebCore::wrap):
1912         * bindings/v8/custom/V8EntryCustom.cpp:
1913         (WebCore::wrap):
1914         * bindings/v8/custom/V8EntrySyncCustom.cpp:
1915         (WebCore::wrap):
1916         * bindings/v8/custom/V8EventCustom.cpp:
1917         (WebCore):
1918         (WebCore::wrap):
1919         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
1920         (WebCore::wrap):
1921         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1922         (WebCore::wrap):
1923         * bindings/v8/custom/V8HTMLElementCustom.cpp:
1924         (WebCore::wrap):
1925         * bindings/v8/custom/V8ImageDataCustom.cpp:
1926         (WebCore::wrap):
1927         * bindings/v8/custom/V8NodeCustom.cpp:
1928         (WebCore::wrap):
1929         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
1930         (WebCore::wrap):
1931         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
1932         (WebCore::wrap):
1933         * bindings/v8/custom/V8SVGElementCustom.cpp:
1934         (WebCore::wrap):
1935         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
1936         (WebCore::wrap):
1937         * bindings/v8/custom/V8StyleSheetCustom.cpp:
1938         (WebCore::wrap):
1939         * dom/make_names.pl:
1940         (printWrapperFunctions):
1941         (printWrapperFactoryCppFile):
1942
1943 2012-11-14  Ryuan Choi  <ryuan.choi@gmail.com>
1944
1945         [EFL] Refactor theme to choose whether to support foreground color of selection
1946         https://bugs.webkit.org/show_bug.cgi?id=102037
1947
1948         Reviewed by Gyuyoung Kim.
1949
1950         RenderThemeEfl can change foreground color of selection using theme file.
1951         But it can not disable supports of foreground color to keep the text color
1952         which is selected.
1953
1954         This patch refactors color classes of theme file from active/inactive classes
1955         to foreground/background classes so that RenderThemeEfl checks whether
1956         theme file supports foreground color class.
1957
1958         * platform/efl/RenderThemeEfl.cpp:
1959         (WebCore::fillColorsFromEdjeClass):
1960         (WebCore::RenderThemeEfl::setColorFromThemeClass):
1961         (WebCore::RenderThemeEfl::loadTheme):
1962         (WebCore::RenderThemeEfl::RenderThemeEfl):
1963         (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
1964         (WebCore):
1965         * platform/efl/RenderThemeEfl.h:
1966         (RenderThemeEfl):
1967
1968 2012-11-14  Tony Chang  <tony@chromium.org>
1969
1970         Convert m_selectorVector back to a stack allocated m_reusableSelectorVector
1971         https://bugs.webkit.org/show_bug.cgi?id=102295
1972
1973         Reviewed by Andreas Kling.
1974
1975         Revert r125252 because we're not going to go forward with implementing CSS hierarchies at this time.
1976
1977         No new tests because there should be no change in behavior.
1978
1979         * css/CSSGrammar.y.in:
1980         * css/CSSParser.cpp:
1981         (WebCore::CSSParser::CSSParser):
1982         (WebCore::CSSParser::parseValue):
1983         (WebCore::CSSParser::parseColor):
1984         (WebCore::CSSParser::parseDeclaration):
1985         (WebCore):
1986         (WebCore::filterProperties):
1987         (WebCore::CSSParser::createStylePropertySet):
1988         (WebCore::CSSParser::addProperty):
1989         (WebCore::CSSParser::rollbackLastProperties):
1990         (WebCore::CSSParser::clearProperties):
1991         (WebCore::CSSParser::parse4Values):
1992         (WebCore::CSSParser::parseFlowThread):
1993         (WebCore::CSSParser::addTextDecorationProperty):
1994         (WebCore::CSSParser::createFloatingSelectorVector):
1995         (WebCore::CSSParser::sinkFloatingSelectorVector):
1996         (WebCore::CSSParser::createStyleRule):
1997         (WebCore::CSSParser::createFontFaceRule):
1998         (WebCore::CSSParser::createPageRule):
1999         (WebCore::CSSParser::setReusableRegionSelectorVector):
2000         (WebCore::CSSParser::startDeclarationsForMarginBox):
2001         (WebCore::CSSParser::endDeclarationsForMarginBox):
2002         (WebCore::CSSParser::deleteFontFaceOnlyValues):
2003         * css/CSSParser.h:
2004         (WebCore::CSSParser::hasProperties):
2005         (WebCore::CSSParser::reusableSelectorVector):
2006         (CSSParser):
2007         (WebCore::CSSParser::reusableRegionSelectorVector):
2008         * css/CSSParserValues.cpp:
2009         (WebCore::CSSParserSelector::adoptSelectorVector):
2010         * css/CSSParserValues.h:
2011         (CSSParserSelector):
2012         * css/CSSSelectorList.cpp:
2013         (WebCore::CSSSelectorList::adoptSelectorVector):
2014         * css/CSSSelectorList.h:
2015         (CSSSelectorList):
2016         * css/SVGCSSParser.cpp:
2017         (WebCore::CSSParser::parseSVGValue):
2018         * css/StyleRule.cpp:
2019         (WebCore::StyleRuleRegion::StyleRuleRegion):
2020         * css/StyleRule.h:
2021         (WebCore::StyleRule::parserAdoptSelectorVector):
2022         (WebCore::StyleRulePage::parserAdoptSelectorVector):
2023         (WebCore::StyleRuleRegion::create):
2024         (StyleRuleRegion):
2025
2026 2012-11-14  Alec Flett  <alecflett@chromium.org>
2027
2028         Add tests for explicit serialization values
2029         https://bugs.webkit.org/show_bug.cgi?id=96818
2030
2031         Reviewed by Adam Barth.
2032
2033         Expose direct access to the serialization/deserialization mechanisms
2034         of SerializedScriptValue to DumpRenderTree.
2035
2036         * testing/Internals.cpp:
2037         (WebCore::Internals::serializeObject):
2038         (WebCore):
2039         (WebCore::Internals::deserializeBuffer):
2040         * testing/Internals.h:
2041         (WebCore):
2042         * testing/Internals.idl:
2043
2044 2012-11-14  Michael Pruett  <michael@68k.org>
2045
2046         IndexedDB: Add clear() method to JSC ScriptValue
2047         https://bugs.webkit.org/show_bug.cgi?id=102288
2048
2049         Reviewed by Kentaro Hara.
2050
2051         IndexedDB uses the ScriptValue::clear() method, which existed
2052         previously only in the V8 implementation of ScriptValue. This
2053         change is necessary to implement IndexedDB for JSC.
2054
2055         Tests: storage/indexeddb/*
2056
2057         * bindings/js/ScriptValue.h:
2058         (WebCore::ScriptValue::clear):
2059         (ScriptValue):
2060
2061 2012-11-14  Joshua Bell  <jsbell@chromium.org>
2062
2063         IndexedDB: Indexing tests are flaky-crashing
2064         https://bugs.webkit.org/show_bug.cgi?id=102283
2065
2066         Reviewed by Tony Chang.
2067
2068         Don't commit the transaction if there are outstanding pre-emptive events
2069         from indexing operations.
2070
2071         Speculative fix for the flakiness.
2072
2073         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
2074         (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
2075
2076 2012-11-14  Tony Chang  <tony@chromium.org>
2077
2078         Crash in flexbox when removing absolutely positioned children
2079         https://bugs.webkit.org/show_bug.cgi?id=100465
2080
2081         Reviewed by Ojan Vafai.
2082
2083         We use m_numberOfChildrenOnFirstLine when computing baseline alignment.
2084         This value gets set during flexbox layout. When we remove an absolutely
2085         positioned child, we don't relayout and this value would get stale.
2086
2087         Change m_numberOfChildrenOnFirstLine to m_numberOfInFlowChildrenOnFirstLine
2088         so the value doesn't get stale when we remove absolutely positioned children.
2089         Also change the loop in firstLineBoxBaseline to bail if we run off the end of
2090         the iterator.
2091
2092         Test: css3/flexbox/crash-removing-out-of-flow-child.html
2093
2094         * rendering/RenderFlexibleBox.cpp:
2095         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
2096         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
2097         (WebCore::RenderFlexibleBox::layoutBlock):
2098         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
2099         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
2100         * rendering/RenderFlexibleBox.h:
2101
2102 2012-11-14  Joshua Bell  <jsbell@chromium.org>
2103
2104         IndexedDB: Remove magic numbers in record comparator, handle missing case
2105         https://bugs.webkit.org/show_bug.cgi?id=102255
2106
2107         Reviewed by Tony Chang.
2108
2109         For some ranges of metadata entries, a simple type byte comparison is sufficient
2110         for the backing store comparator. In two places those ranges used magic numbers,
2111         one of which was incorrect - which could lead to failed reads/writes.
2112
2113         Test: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
2114
2115         * Modules/indexeddb/IDBLevelDBCoding.cpp:
2116         (IDBLevelDBCoding):
2117         (WebCore::IDBLevelDBCoding::compare):
2118         * Modules/indexeddb/IDBLevelDBCoding.h:
2119
2120 2012-11-14  Dirk Schulze  <krit@webkit.org>
2121
2122         Cleanup BasicShape blending check
2123         https://bugs.webkit.org/show_bug.cgi?id=102289
2124
2125         Reviewed by Daniel Bates.
2126
2127         CSSPropertyAnimation had the same code for varifying that two BasicShape objects can be blended 
2128         twice. Refactor the code and add a canBlend method in BasicShape that combines both checks. This
2129         is a preparation for follow-up patches.
2130
2131         Pure refactoring without behavior change, no new tests.
2132
2133         * page/animation/CSSPropertyAnimation.cpp:
2134         (WebCore::blendFunc): Call new canBlend method for blending verification.
2135         * rendering/style/BasicShapes.cpp:
2136         (WebCore::BasicShape::canBlend): Check if two BasicShape objects can be blended.
2137         (WebCore):
2138         * rendering/style/BasicShapes.h:
2139
2140 2012-11-14  Dirk Schulze  <krit@webkit.org>
2141
2142         [CSS Exclusions] Basic shapes on 'shape-inside' should be animatable
2143         https://bugs.webkit.org/show_bug.cgi?id=102123
2144
2145         Reviewed by Antti Koivisto.
2146
2147         The '-webkit-shape-inside' propery takes a BasicShape as input like
2148         '-webkit-clip-path'. Follow up on http://trac.webkit.org/changeset/134352 and
2149         make '-webkit-shape-inside' animatable as well.
2150
2151         Test: fast/exclusions/shape-inside/shape-inside-animation.html
2152
2153         * page/animation/CSSPropertyAnimation.cpp:
2154         (WebCore::blendFunc): Blend fuction for exclusion shapes. The property takes another
2155             input then '-webkit-clip-path'.
2156         (WebCore):
2157         (PropertyWrapperBasicShape): Add wrapper for BasicShape object. Can be reused by
2158             '-webkit-shape-ourside' as well.
2159         (WebCore::PropertyWrapperBasicShape::PropertyWrapperBasicShape):
2160         (WebCore::CSSPropertyAnimation::ensurePropertyMap):
2161
2162 2012-11-14  Helder Correia  <helder.correia@nokia.com>
2163
2164         [TexMap][Cairo] Accelerated compositing debug visuals
2165         https://bugs.webkit.org/show_bug.cgi?id=101883
2166
2167         Reviewed by Kenneth Rohde Christiansen.
2168
2169         No new tests, just introducing a debug feature.
2170
2171         Add a Cairo implementation to complement the patch from bug 90116
2172         (http://trac.webkit.org/changeset/122275).
2173
2174         For this feature to be enabled, the environment variable
2175         WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
2176         both repaint counters and tile borders will be painted.
2177
2178         A Cairo-specific drawRepaintCounter() implementation was added to
2179         TextureMapperGL. A cairo_surface_t is used as scratch buffer to paint
2180         the counters. It is then uploaded to a BitmapTexture acquired
2181         from the pool and finally draw by TextureMapper. The actual compositing
2182         happens inside LayerBackingStore::paintToTextureMapper(). Each
2183         LayerBackingStoreTile has a repaint counter which gets incremented in
2184         LayerBackingStore::updateTile().
2185
2186         * platform/graphics/texmap/TextureMapperGL.cpp:
2187         (WebCore::TextureMapperGL::drawRepaintCounter):
2188
2189 2012-11-14  Michael Pruett  <michael@68k.org>
2190
2191         IndexedDB: Add JSNoStaticTables to IndexedDB interfaces
2192         https://bugs.webkit.org/show_bug.cgi?id=102268
2193
2194         Reviewed by Geoffrey Garen.
2195
2196         Add JSNoStaticTables attribute to IndexedDB interface
2197         definitions. This attribute must be specified in interfaces
2198         which can be accessed from workers.
2199
2200         Tests: storage/indexeddb/*
2201
2202         * Modules/indexeddb/IDBAny.idl:
2203         * Modules/indexeddb/IDBCursor.idl:
2204         * Modules/indexeddb/IDBCursorWithValue.idl:
2205         * Modules/indexeddb/IDBDatabase.idl:
2206         * Modules/indexeddb/IDBDatabaseException.idl:
2207         * Modules/indexeddb/IDBFactory.idl:
2208         * Modules/indexeddb/IDBIndex.idl:
2209         * Modules/indexeddb/IDBKey.idl:
2210         * Modules/indexeddb/IDBKeyRange.idl:
2211         * Modules/indexeddb/IDBObjectStore.idl:
2212         * Modules/indexeddb/IDBOpenDBRequest.idl:
2213         * Modules/indexeddb/IDBRequest.idl:
2214         * Modules/indexeddb/IDBTransaction.idl:
2215         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
2216         * Modules/indexeddb/IDBVersionChangeEvent.idl:
2217         * Modules/indexeddb/IDBVersionChangeRequest.idl:
2218         * dom/DOMStringList.idl:
2219
2220 2012-11-14  Michael Pruett  <michael@68k.org>
2221
2222         IndexedDB: Replace int64 with int64_t
2223         https://bugs.webkit.org/show_bug.cgi?id=102270
2224
2225         Reviewed by Tony Chang.
2226
2227         Cleaning up coding inconsistencies, no change in behavior.
2228
2229         Tests: storage/indexeddb/*
2230
2231         * Modules/indexeddb/IDBDatabase.cpp:
2232         (WebCore::IDBDatabase::deleteObjectStore):
2233         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
2234         (WebCore::IDBObjectStoreBackendImpl::putInternal):
2235
2236 2012-11-14  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
2237
2238         [EFL][WK2] White flicker when scrolling big pages with dark background on slower hardware.
2239         https://bugs.webkit.org/show_bug.cgi?id=102000
2240
2241         Reviewed by Noam Rosenthal.
2242
2243         Add helper functions to clear viewport before painting. Those functions
2244         used by EFL Webkit2 port to set view background to match page background
2245         in order to reduce visibility of flicker during scrolling/scaling/repainting
2246         where page tiles are not ready.
2247
2248         * platform/graphics/texmap/TextureMapper.h:
2249         * platform/graphics/texmap/TextureMapperGL.cpp:
2250         (WebCore::TextureMapperGL::drawSolidColor):
2251         (WebCore):
2252         * platform/graphics/texmap/TextureMapperGL.h:
2253         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
2254         (WebCore::TextureMapperImageBuffer::drawSolidColor):
2255         (WebCore):
2256         * platform/graphics/texmap/TextureMapperImageBuffer.h:
2257
2258 2012-11-14  Mark Lam  <mark.lam@apple.com>
2259
2260         Fixed regressions due to adding JSEventListener::m_wrapper null checks.
2261         https://bugs.webkit.org/show_bug.cgi?id=102183.
2262
2263         Reviewed by Geoffrey Garen.
2264
2265         Fixed JSEventListener::operator==() to work within the contract that
2266         when m_wrapper is 0, m_jsFunction is also expected to be 0. Also fixed
2267         some typos in comments.
2268
2269         No new tests.
2270
2271         * bindings/js/JSEventListener.cpp:
2272         (WebCore::JSEventListener::visitJSFunction):
2273         (WebCore::JSEventListener::operator==):
2274         * bindings/js/JSEventListener.h:
2275         (WebCore::JSEventListener::jsFunction):
2276
2277 2012-11-14  Nate Chapin  <japhet@chromium.org>
2278
2279         Fix chromium asserts from r134649.
2280
2281         Rubber-stamped by Adam Barth.
2282
2283         MainResourceLoader was calling releaseResources() twice when cancelled
2284         within MainResourceLoader::load(), so check reachedTerminalState() before
2285         calling releaseResources() there.
2286
2287         * loader/MainResourceLoader.cpp:
2288         (WebCore::MainResourceLoader::load):
2289
2290 2012-11-14  Andreas Kling  <kling@webkit.org>
2291
2292         Only resolve presentation attribute style once per shared ElementAttributeData.
2293         <http://webkit.org/b/100990>
2294
2295         Reviewed by Antti Koivisto.
2296
2297         Track the "presentation attribute style dirty" state on ElementAttributeData instead of in a Node flag.
2298         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
2299         since the state is no longer per-Element.
2300
2301         I've left the presentation attribute cache in there for now, since it still covers the case where
2302         two elements have the same presentation attributes but different non-presentation attributes.
2303         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
2304
2305         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
2306         * dom/StyledElement.h:
2307         (WebCore::StyledElement::presentationAttributeStyle):
2308         (WebCore::ElementAttributeData::ElementAttributeData):
2309         * dom/ElementAttributeData.h:
2310         (WebCore::ElementAttributeData::ElementAttributeData):
2311         (ElementAttributeData):
2312         * dom/Node.h:
2313
2314             Move presentation attribute style dirty flag from Node to ElementAttributeData.
2315
2316         * dom/ElementAttributeData.cpp:
2317         (SameSizeAsElementAttributeData):
2318
2319             Add a compile-time object size assertion for ElementAttributeData.
2320
2321         * dom/StyledElement.cpp:
2322         (WebCore::StyledElement::attributeChanged):
2323
2324             Don't mark the presentation attribute style dirty if the element is using an immutable (implies
2325             shared) ElementAttributeData and another element has already generated the StylePropertySet.
2326             The element itself is still marked for style recalc like before, this just avoids the process
2327             of converting the attributes to CSS properties.
2328
2329 2012-11-14  Scott Violet  <sky@chromium.org>
2330
2331         [Chromium] Refactor theme font lookup into a factory
2332         https://bugs.webkit.org/show_bug.cgi?id=101949
2333
2334         Reviewed by Tony Chang.
2335
2336         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
2337
2338         No new tests. Refactoring only.
2339
2340         * WebCore.gyp/WebCore.gyp:
2341         * WebCore.gypi:
2342         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
2343         (WebCore):
2344         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
2345         * rendering/RenderThemeChromiumFontProvider.h: Added.
2346         (WTF):
2347         (WebCore):
2348         (RenderThemeChromiumFontProvider): This is the font related methods.
2349         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
2350         (WebCore):
2351         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
2352         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
2353         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
2354         (WebCore):
2355         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
2356         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
2357         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
2358         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
2359         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
2360         * rendering/RenderThemeChromiumSkia.cpp:
2361         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
2362         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
2363         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
2364         * rendering/RenderThemeChromiumSkia.h:
2365         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
2366         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
2367         (WebCore):
2368         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
2369         (RenderThemeChromiumWin):
2370
2371 2012-11-14  Erik Arvidsson  <arv@chromium.org>
2372
2373         Update DOMException name: InUseAttributeError
2374         https://bugs.webkit.org/show_bug.cgi?id=102141
2375
2376         Reviewed by Ojan Vafai.
2377
2378         Patch 10 of 25 to update DOMException name to match the spec and Firefox.
2379
2380         The name for this is not in the spec but the case was selected to match
2381         Firefox. http://mxr.mozilla.org/mozilla-central/source/dom/base/domerr.msg#18
2382
2383         INUSE_ATTRIBUTE_ERR is historical and not used in any spec or any of our tests.
2384
2385         * dom/DOMCoreException.cpp:
2386         * dom/ExceptionCode.h:
2387
2388 2012-11-14  Lynn Neir  <lynn.neir@skype.net>
2389
2390         [WinCairo] Incorrect line-height for styled menulist (select tag)
2391         in windows theme.
2392         https://bugs.webkit.org/show_bug.cgi?id=79435
2393
2394         Reviewed by Brent Fulgham
2395
2396         Applied same fix as in RenderThemeSafari::adjustMenuListButtonStyle
2397         to Windows theme to fix issue.
2398
2399         Tests: fast/forms/menulist-restrict-line-height.html
2400                fast/forms/control-restrict-line-height.html
2401                fast/forms/basic-selects.html
2402
2403         * rendering/RenderThemeWin.cpp:
2404         (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Set line
2405         height to the correct initial height.
2406
2407 2012-11-14  Erik Arvidsson  <arv@chromium.org>
2408
2409         Update DOMException name: WrongDocumentError
2410         https://bugs.webkit.org/show_bug.cgi?id=102096
2411
2412         Reviewed by Ojan Vafai.
2413
2414         Patch 4 of 25 to update DOMException name to match the spec and Firefox.
2415
2416         Updated existing tests.
2417
2418         * dom/DOMCoreException.cpp:
2419
2420 2012-11-14  Nate Chapin  <japhet@chromium.org>
2421
2422         Move empty loading to DocumentLoader, simplify FrameLoader::init()
2423         https://bugs.webkit.org/show_bug.cgi?id=101512
2424
2425         Reviewed by Adam Barth.
2426
2427         No new tests, though several outputs changed because we no longer send resource
2428             load callbacks for empty loads.
2429
2430         * loader/DocumentLoader.cpp:
2431         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
2432             loads directly here.
2433         * loader/DocumentLoader.h:
2434         * loader/FrameLoader.cpp:
2435         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
2436             were previously being reset in init(). Given that the FrameLoader is in
2437             an inconsistent state before init() is called anyway, there doesn't seem
2438             to be a disadvantage to just initializing them to their post-init() values.
2439         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
2440             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
2441         * loader/FrameLoaderStateMachine.cpp:
2442         * loader/FrameLoaderStateMachine.h:
2443         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
2444         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
2445             load got deferred, which won't happen now. Return void and always treat
2446             as returning false.
2447         * loader/MainResourceLoader.h:
2448
2449 2012-11-14  Erik Arvidsson  <arv@chromium.org>
2450
2451         Update DOMException name: InvalidStateError
2452         https://bugs.webkit.org/show_bug.cgi?id=102241
2453
2454         Reviewed by Ojan Vafai.
2455
2456         Patch 11 of 25 to update DOMException name to match the spec and Firefox.
2457
2458         Updated existing tests.
2459
2460         * dom/DOMCoreException.cpp:
2461
2462 2012-11-14  Joshua Bell  <jsbell@chromium.org>
2463
2464         Rename NATIVE_TYPE_ERR to TypeError
2465         https://bugs.webkit.org/show_bug.cgi?id=102114
2466
2467         Reviewed by Kentaro Hara.
2468
2469         Defines names (mostly) matching WebIDL exception types for use by dom (etc) code.
2470         V8 binding code had colliding enum members, which required prefixing.
2471
2472         No new tests - just internal renames.
2473
2474         * Modules/indexeddb/IDBCursor.cpp: s/NATIVE_TYPE_ERR/TypeError/g
2475         (WebCore::IDBCursor::advance):
2476         (WebCore::IDBCursor::stringToDirection):
2477         (WebCore::IDBCursor::directionToString):
2478         * Modules/indexeddb/IDBDatabase.cpp: Ditto.
2479         (WebCore::IDBDatabase::setVersion):
2480         * Modules/indexeddb/IDBFactory.cpp: Ditto.
2481         (WebCore::IDBFactory::open):
2482         (WebCore::IDBFactory::openInternal):
2483         (WebCore::IDBFactory::deleteDatabase):
2484         * Modules/indexeddb/IDBObjectStore.cpp: Ditto.
2485         (WebCore::IDBObjectStore::createIndex):
2486         * Modules/indexeddb/IDBTransaction.cpp: Ditto.
2487         (WebCore::IDBTransaction::stringToMode):
2488         (WebCore::IDBTransaction::modeToString):
2489         * bindings/js/JSDOMBinding.cpp: Ditto.
2490         (WebCore::setDOMException):
2491         * bindings/v8/DateExtension.cpp: Prefix ErrorType enum/members w/ V8/v8.
2492         (WebCore::DateExtension::OnSleepDetected):
2493         * bindings/v8/NPV8Object.cpp: Ditto.
2494         (_NPN_SetException):
2495         * bindings/v8/V8Binding.cpp: Ditto.
2496         (WebCore::throwError):
2497         (WebCore::handleMaxRecursionDepthExceeded):
2498         * bindings/v8/V8Binding.h: Ditto.
2499         (WebCore):
2500         * bindings/v8/V8NPObject.cpp: Ditto.
2501         (WebCore::npObjectInvokeImpl):
2502         (WebCore::npObjectGetProperty):
2503         (WebCore::npObjectSetProperty):
2504         (WebCore::npObjectPropertyEnumerator):
2505         * bindings/v8/V8ThrowException.cpp: Rename ALL the errors!
2506         (WebCore::V8ThrowException::setDOMException):
2507         (WebCore::V8ThrowException::throwError):
2508         (WebCore::V8ThrowException::throwTypeError):
2509         (WebCore::V8ThrowException::throwNotEnoughArgumentsError):
2510         * bindings/v8/V8ThrowException.h:
2511         (V8ThrowException):
2512         * bindings/v8/WorkerContextExecutionProxy.cpp: Prefixing (continued)
2513         (WebCore::WorkerContextExecutionProxy::evaluate):
2514         * bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
2515         (WebCore::V8ArrayBuffer::constructorCallback):
2516         * bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
2517         (WebCore::constructWebGLArrayWithArrayBufferArgument):
2518         (WebCore::constructWebGLArray):
2519         (WebCore::setWebGLArrayHelper):
2520         * bindings/v8/custom/V8AudioContextCustom.cpp: Ditto.
2521         (WebCore::V8AudioContext::constructorCallback):
2522         * bindings/v8/custom/V8BlobCustom.cpp: Ditto.
2523         (WebCore::V8Blob::constructorCallback):
2524         * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
2525         (WebCore::V8Clipboard::clearDataCallback):
2526         (WebCore::V8Clipboard::setDragImageCallback):
2527         * bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
2528         (WebCore::V8DOMFormData::appendCallback):
2529         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Ditto.
2530         (WebCore::V8SQLResultSetRowList::itemCallback):
2531         * dom/ExceptionCode.h: Add WebIDL exception types.
2532
2533 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
2534
2535         [BlackBerry] Style BB10 time input field font.
2536         https://bugs.webkit.org/show_bug.cgi?id=102260.
2537
2538         Reviewed by Rob Buis.
2539
2540         RIM PR 243355
2541         Adjust time input field font using BB10 system default font.
2542
2543         * css/themeBlackBerry.css:
2544         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
2545
2546 2012-11-14  Li Yin  <li.yin@intel.com>
2547
2548         createDelay should raise exception when the maxDelayTime parameter is incorrect.
2549         https://bugs.webkit.org/show_bug.cgi?id=102173
2550
2551         Reviewed by Chris Rogers.
2552
2553         Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
2554         The specified value must be greater than zero and less than three minutes or a
2555         NOT_SUPPORTED_ERR exception will be thrown.
2556
2557         Tests: webaudio/delaynode-maxdelaylimit.html
2558
2559         * Modules/webaudio/AudioContext.cpp:
2560         (WebCore::AudioContext::createDelay):
2561         * Modules/webaudio/AudioContext.h:
2562         (AudioContext):
2563         * Modules/webaudio/AudioContext.idl: Add raising exception for createDelay.
2564         * Modules/webaudio/DelayNode.cpp:
2565         (WebCore):
2566         (WebCore::DelayNode::DelayNode):
2567         * Modules/webaudio/DelayNode.h:
2568         (WebCore::DelayNode::create):
2569         (DelayNode):
2570
2571 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
2572
2573         Don't pass a paintingRoot when painting from RenderLayerBacking
2574         https://bugs.webkit.org/show_bug.cgi?id=102256
2575
2576         Reviewed by David Hyatt.
2577
2578         The 'paintingRoot' parameter to the RenderLayer paint functions
2579         is used when painting just a subtree (e.g. when painting dragged
2580         selections). There is no need to pass it when a RenderLayerBacking
2581         paints its contents or overlay scrollbars.
2582         
2583         Passing it requires an expensive isDescendant() check, so passing
2584         null is more efficient.
2585         
2586         * rendering/RenderLayer.h:
2587         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
2588         * rendering/RenderLayerBacking.cpp:
2589         (WebCore::RenderLayerBacking::paintIntoLayer):
2590         (WebCore::RenderLayerBacking::paintContents):
2591         * rendering/RenderLayerBacking.h:
2592         (RenderLayerBacking):
2593
2594 2012-11-14  Alec Flett  <alecflett@chromium.org>
2595
2596         Add DOMRequestState to maintain world/ScriptExecutionContext state
2597         https://bugs.webkit.org/show_bug.cgi?id=102102
2598
2599         Reviewed by Adam Barth.
2600
2601         Introduce DOMRequestState, and convert IndexedDB over.
2602
2603         No new tests, this is an abstraction layer for existing code.
2604
2605         * Modules/indexeddb/IDBRequest.cpp:
2606         (WebCore::IDBRequest::IDBRequest):
2607         (WebCore::IDBRequest::onSuccess):
2608         (WebCore::IDBRequest::dispatchEvent):
2609         * Modules/indexeddb/IDBRequest.h:
2610         (IDBRequest):
2611         * WebCore.gypi:
2612         * bindings/v8/DOMRequestState.h: Added.
2613         (WebCore):
2614         (DOMRequestState):
2615         (WebCore::DOMRequestState::DOMRequestState):
2616         (Scope):
2617         (WebCore::DOMRequestState::Scope::Scope):
2618         (WebCore::DOMRequestState::scope):
2619
2620 2012-11-14  Justin Novosad  <junov@google.com>
2621
2622         Boxes with rounded corners and thin borders are too slow to draw
2623         https://bugs.webkit.org/show_bug.cgi?id=101974
2624
2625         Reviewed by Simon Fraser.
2626
2627         With the current implementation RenderBox::
2628         determineBackgroundBleedAvoidance() uses the slow path
2629         BackgroundBleedUseTransparencyLayer for some very common use cases,
2630         notably for drawing rectangles with rounded corners that have thin
2631         borders. This is because the BackgroundBleedShrinkBackground
2632         strategy requires a border at least two pixels wide on all sides. This
2633         patch introduce drawing strategy BackgroundBleedBackgroundOverBorder.
2634         This approach consists in drawing the border first, with an inset inner
2635         edge (for anti-aliased compositing to work well).  This approach only
2636         works with opaque solid edges and opaque single-layer backgrounds.
2637         By using this approach rather than BackgroundBleedUseTransparencyLayer,
2638         we save two clipPath, one save and one saveLayer on the
2639         GraphicsContext. This patch gets good coverage from existing layout
2640         tests. One additional test was added to exercise mitring, thick edges
2641         and anti-aliasing edge cases under the new painting algorithm.
2642
2643         Test: fast/borders/border-radius-wide-border-05.html
2644
2645         * rendering/RenderBox.cpp:
2646         (WebCore::RenderBox::determineBackgroundBleedAvoidance):
2647         Added selection criteria for BackgroundOverBorder
2648         (WebCore::RenderBox::paintBoxDecorations):
2649         Added a preliminary paintBorder pass for BackgroundOverBorder
2650         (WebCore::RenderBox::paintBackground):
2651         Insetting the background to to innerBorder when bleedAvoidance is
2652         BackgroundOverBorder.  This why BackgroundOverBorder only works for
2653         Opaque solid edges.
2654         (WebCore):
2655         (WebCore::RenderBox::backgroundIsSingleOpaqueLayer):
2656         Utility method use by determineBackgroundBleedAvoidance to test the
2657         background's eligibility for BackgroundOverBorder bleed avoidance
2658         strategy.  The reason the background must be a single layer is to avoid
2659         color bleeding from layer compositing along anti-aliased edges
2660         * rendering/RenderBox.h:
2661         (RenderBox):
2662         * rendering/RenderBoxModelObject.cpp:
2663         (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
2664         (WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
2665         Added support for BackgroundOverBorder by applying a one pixel inset.
2666         (WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
2667         Set the background rect to the inner border for BackgroundOverBorder
2668         (WebCore):
2669         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
2670         Added support for BackgroundOverBorder by using 
2671         backgroundRoundedRectAdjustedForBleedAvoidance
2672         (WebCore::RenderBoxModelObject::paintBorderSides):
2673         Added support for BackgroundOverBorder by applying per-side inset
2674         adjustments.
2675         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
2676         (WebCore::RenderBoxModelObject::paintBorder):
2677         Added support for BackgroundOverBorder by using an adjusted inner
2678         border, but not if sides are painted individually.
2679         * rendering/RenderBoxModelObject.h:
2680         (RenderBoxModelObject):
2681
2682 2012-11-14  Hideki Yoshida  <yoshida-hxa@necst.nec.co.jp>
2683
2684         [WinCairo] Fix cairo_t* memory leak in GraphicsContext::platformInit
2685         https://bugs.webkit.org/show_bug.cgi?id=76219
2686
2687         Reviewed by Brent Fulgham.
2688
2689         This patch is to fix a memory leak problem which occurs
2690         in every rendering process on Wincairo port.
2691         By applying this patch, the memory allocated in cairo 
2692         library will be released by calling cairo_destroy.
2693
2694         * platform/graphics/win/GraphicsContextCairoWin.cpp:
2695         (WebCore::GraphicsContext::platformInit):
2696
2697 2012-11-14  Sami Kyostila  <skyostil@chromium.org>
2698
2699         Optimize painting of composited scrolling layers
2700         https://bugs.webkit.org/show_bug.cgi?id=96087
2701
2702         Reviewed by Simon Fraser.
2703
2704         Don't completely repaint accelerated scrolling layers when the scroll offset
2705         changes.
2706
2707         Test: compositing/overflow/scrolling-without-painting.html
2708
2709         * platform/graphics/GraphicsLayer.cpp:
2710         (WebCore::GraphicsLayer::setOffsetFromRenderer):
2711         * platform/graphics/GraphicsLayer.h:
2712         (GraphicsLayer):
2713         * rendering/RenderLayerBacking.cpp:
2714         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2715
2716 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
2717
2718         Web Inspector: keep track of mutation observers and disconnect them upon upload
2719         https://bugs.webkit.org/show_bug.cgi?id=102239
2720
2721         Reviewed by Vsevolod Vlasov.
2722
2723         Otherwise we hit memory leaks.
2724
2725         * inspector/front-end/DefaultTextEditor.js:
2726         (WebInspector.DefaultTextEditor.prototype.wasShown):
2727         (WebInspector.DefaultTextEditor.prototype.willHide):
2728         (WebInspector.TextEditorMainPanel.prototype._wasShown):
2729         (WebInspector.TextEditorMainPanel.prototype._willHide):
2730         (WebInspector.TextEditorMainPanel.prototype._attachMutationObserver):
2731         (WebInspector.TextEditorMainPanel.prototype._detachMutationObserver):
2732         * inspector/front-end/utilities.js:
2733
2734 2012-11-14  Sergio Villar Senin  <svillar@igalia.com>
2735
2736         [Qt] Use a node image if there is no drag image set for Drag&Drop
2737         https://bugs.webkit.org/show_bug.cgi?id=102124
2738
2739         Reviewed by Simon Hausmann.
2740
2741         Use the nodeImage provided by the frame if there is no dragImage in
2742         the clipboard for the current drag&drop operation.
2743
2744         * platform/qt/ClipboardQt.cpp:
2745         (WebCore::ClipboardQt::createDragImage):
2746
2747 2012-11-14  Max Vujovic  <mvujovic@adobe.com>
2748
2749         Call to enclosingFilterLayer() in RenderObject::containerForRepaint() is expensive
2750         https://bugs.webkit.org/show_bug.cgi?id=101846
2751
2752         Reviewed by Simon Fraser.
2753
2754         If software-rendered CSS Filters have not been used in the document, avoid doing the second
2755         tree walk in RenderObject::containerForRepaint, which determines the RenderObject's
2756         enclosing filter layer.
2757
2758         No new tests. We now avoid a filters related code path for a performance improvement when
2759         we're not using filters.
2760
2761         * page/FrameView.cpp:
2762         (WebCore::FrameView::FrameView):
2763         * page/FrameView.h:
2764         (FrameView):
2765         (WebCore::FrameView::setHasSoftwareFilters):
2766         (WebCore::FrameView::hasSoftwareFilters):
2767         * rendering/RenderLayer.cpp:
2768         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
2769         * rendering/RenderObject.cpp:
2770         (WebCore::RenderObject::containerForRepaint):
2771
2772 2012-11-14  Erik Arvidsson  <arv@chromium.org>
2773
2774         Update DOMException name: NotFoundError
2775         https://bugs.webkit.org/show_bug.cgi?id=102137
2776
2777         Reviewed by Ojan Vafai.
2778
2779         Patch 8 of 25 to update DOMException name to match the spec and Firefox.
2780
2781         Updated existing tests.
2782
2783         * dom/DOMCoreException.cpp:
2784
2785 2012-11-14  Otto Derek Cheung  <otcheung@rim.com>
2786
2787         [BlackBerry] Updating BB Cookie database to use WAL
2788         https://bugs.webkit.org/show_bug.cgi?id=102237
2789
2790         Reviewed by Rob Buis.
2791
2792         The cookie database is accessed by one process only and should be updated to
2793         use the WAL journal mode for better I/O performance.
2794
2795         PR 236553
2796
2797         cookieCollection.db-wal is created after the conversion to WAL.
2798         Tested cookie persistence by logging on to random sites and restarting the browser and
2799         check if it automatically logs in.
2800         Also tested using Opera's cookie persistence test.
2801
2802         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
2803         (WebCore::CookieDatabaseBackingStore::invokeOpen):
2804
2805 2012-11-14  Erik Arvidsson  <arv@chromium.org>
2806
2807         Update DOMException name: IndexSizeError
2808         https://bugs.webkit.org/show_bug.cgi?id=102087
2809
2810         Reviewed by Ojan Vafai.
2811
2812         This is the first in a series of updates to DOMException name to match
2813         the spec and Firefox.
2814
2815         Patch 1 of 25
2816
2817         Updated existing tests.
2818
2819         * dom/DOMCoreException.cpp:
2820         (WebCore):
2821
2822 2012-11-14  Gabor Rapcsanyi  <rgabor@webkit.org>
2823
2824         Fix [-Wmissing-braces] warnings in graphics/cpu/arm/GraphicsContext3DNEON.h
2825         https://bugs.webkit.org/show_bug.cgi?id=102205
2826
2827         Reviewed by Csaba Osztrogon√°c.
2828
2829         Fixing some warnings in GraphicsContext3DNEON.h which have been caused by missing braces.
2830
2831         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
2832         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
2833         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
2834         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
2835
2836 2012-11-14  Erik Arvidsson  <arv@chromium.org>
2837
2838         Update DOMException name: NoDataAllowedError
2839         https://bugs.webkit.org/show_bug.cgi?id=102132
2840
2841         Reviewed by Darin Adler.
2842
2843         Patch 6 of 25 to update DOMException name to match the spec and Firefox.
2844
2845         NO_DATA_ALLOWED_ERR is historical and not used in any spec or in our code.
2846
2847         * dom/DOMCoreException.cpp:
2848         (WebCore):
2849         * dom/ExceptionCode.h:
2850
2851 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
2852
2853         Web Inspector: "Reveal in Element Panel" doesn't work if Elements panel hasn't been opened
2854         https://bugs.webkit.org/show_bug.cgi?id=102219
2855
2856         Reviewed by Alexander Pavlov.
2857
2858         Force elements module load upon context menu invocation.
2859
2860         * inspector/front-end/ElementsTreeOutline.js:
2861         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired.focusElement):
2862         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
2863
2864 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
2865
2866         Unreviewed, rolling out r134523.
2867         http://trac.webkit.org/changeset/134523
2868         https://bugs.webkit.org/show_bug.cgi?id=102218
2869
2870         brake chrome windows build, as it references a non existing
2871         header js/DOMRequestState.h (Requested by jochen__ on
2872         #webkit).
2873
2874         * Modules/indexeddb/IDBCursor.cpp:
2875         (WebCore::IDBCursor::setValueReady):
2876         * Modules/indexeddb/IDBCursor.h:
2877         (IDBCursor):
2878         * Modules/indexeddb/IDBRequest.cpp:
2879         (WebCore::IDBRequest::IDBRequest):
2880         (WebCore::IDBRequest::onSuccess):
2881         (WebCore::IDBRequest::stop):
2882         (WebCore::IDBRequest::dispatchEvent):
2883         * Modules/indexeddb/IDBRequest.h:
2884         (IDBRequest):
2885         * WebCore.gypi:
2886         * bindings/v8/DOMRequestState.h: Removed.
2887         * bindings/v8/IDBBindingUtilities.cpp:
2888         (WebCore::deserializeIDBValue):
2889         (WebCore::idbKeyToScriptValue):
2890         * bindings/v8/IDBBindingUtilities.h:
2891         (WebCore):
2892
2893 2012-11-14  Anton Obzhirov  <a.obzhirov@samsung.com>
2894
2895         Add platform implementation of remote web inspector server for GTK port.
2896         https://bugs.webkit.org/show_bug.cgi?id=88094 
2897
2898         Reviewed by Gustavo Noronha Silva.
2899
2900         Extra SocketStreamHandle constructor is added to accept existing GSocketConnection.
2901         Needed to pass remote inspector server socket connection. The change is tested with 
2902         inspector server API tests.
2903
2904         * platform/network/soup/SocketStreamHandle.h:
2905         (WebCore::SocketStreamHandle::create):
2906         (SocketStreamHandle):
2907         * platform/network/soup/SocketStreamHandleSoup.cpp:
2908         (WebCore::SocketStreamHandle::SocketStreamHandle):
2909         (WebCore):
2910         (WebCore::SocketStreamHandle::connected):
2911         (WebCore::SocketStreamHandle::platformSend):
2912         (WebCore::SocketStreamHandle::platformClose):
2913
2914 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
2915
2916         Web Inspector: context menu on ObjectPropertyTreeElement's values is masked by the section.
2917         https://bugs.webkit.org/show_bug.cgi?id=102212
2918
2919         Reviewed by Vsevolod Vlasov.
2920
2921         * inspector/front-end/ObjectPropertiesSection.js:
2922         (WebInspector.ObjectPropertiesSection.prototype.enableContextMenu):
2923
2924 2012-11-09  Ilya Tikhonovsky  <loislo@chromium.org>
2925
2926         Web Inspector: NMI add instrumentation for WebAudo related stuff.
2927         They use about 16Mb for shared data on pages with webaudio.
2928         As example Angry Birds app.
2929         https://bugs.webkit.org/show_bug.cgi?id=101729
2930
2931         Reviewed by Yury Semikhatsky.
2932
2933         Plain vanilla instrumentation for audio and webaudio classes.
2934         AudioContext is a kind of ActiveDOMObject. I found that these objects
2935         are accessible through ScriptExecutuionContext and ScriptExecutionContext
2936         is an ancestor of Document. Document class was instrumented earler.
2937         I instrumented ActiveDOMObject, ScriptExecutionContext and other ancestors
2938         and now AudioContext and other ActiveDOMObjects are reacheable from Document.
2939
2940         Test: inspector-protocol/nmi-webaudio.html
2941
2942         * Modules/webaudio/AudioContext.cpp:
2943         (WebCore::AudioContext::reportMemoryUsage):
2944         (WebCore):
2945         * Modules/webaudio/AudioContext.h:
2946         (AudioContext):
2947         * Modules/webaudio/AudioNode.cpp:
2948         (WebCore::AudioNode::reportMemoryUsage):
2949         (WebCore):
2950         * Modules/webaudio/AudioNode.h:
2951         (AudioNode):
2952         * dom/ActiveDOMObject.cpp:
2953         (WebCore::ActiveDOMObject::reportMemoryUsage):
2954         (WebCore):
2955         * dom/ActiveDOMObject.h:
2956         (ActiveDOMObject):
2957         * dom/Document.cpp:
2958         (WebCore::Document::reportMemoryUsage):
2959         * dom/ScriptExecutionContext.cpp:
2960         (WebCore::ScriptExecutionContext::reportMemoryUsage):
2961         (WebCore):
2962         * dom/ScriptExecutionContext.h:
2963         (ScriptExecutionContext):
2964         * dom/SecurityContext.cpp:
2965         (WebCore::SecurityContext::reportMemoryUsage):
2966         (WebCore):
2967         * dom/SecurityContext.h:
2968         (SecurityContext):
2969         * dom/WebCoreMemoryInstrumentation.cpp:
2970         (WebCore):
2971         * dom/WebCoreMemoryInstrumentation.h:
2972         (WebCoreMemoryTypes):
2973         * platform/audio/AudioArray.h:
2974         (AudioArray):
2975         (WebCore::AudioArray::reportMemoryUsage):
2976         * platform/audio/FFTFrame.cpp:
2977         (WebCore::FFTFrame::reportMemoryUsage):
2978         (WebCore):
2979         * platform/audio/FFTFrame.h:
2980         (FFTFrame):
2981         * platform/audio/HRTFDatabase.cpp:
2982         (WebCore::HRTFDatabase::reportMemoryUsage):
2983         (WebCore):
2984         * platform/audio/HRTFDatabase.h:
2985         (HRTFDatabase):
2986         * platform/audio/HRTFDatabaseLoader.cpp:
2987         (WebCore::HRTFDatabaseLoader::reportMemoryUsage):
2988         (WebCore):
2989         * platform/audio/HRTFDatabaseLoader.h:
2990         (HRTFDatabaseLoader):
2991         * platform/audio/HRTFElevation.cpp:
2992         (WebCore::HRTFElevation::reportMemoryUsage):
2993         (WebCore):
2994         * platform/audio/HRTFElevation.h:
2995         (HRTFElevation):
2996         * platform/audio/HRTFKernel.cpp:
2997         (WebCore::HRTFKernel::reportMemoryUsage):
2998         (WebCore):
2999         * platform/audio/HRTFKernel.h:
3000         (HRTFKernel):
3001
3002 2012-11-14  Eugene Klyuchnikov  <eustas.bug@gmail.com>
3003
3004         Web Inspector: Settings screen: close button overlays view title on mac.
3005         https://bugs.webkit.org/show_bug.cgi?id=102198
3006
3007         Reviewed by Pavel Feldman.
3008
3009         Added margin-left for mac. Adjusted title height and vertical positioning.
3010
3011         * inspector/front-end/helpScreen.css:
3012         (.help-window-caption): Adjusted title height.
3013         (.help-window-title): Adjusted title vertical positioning. 
3014         (body.platform-mac .help-window-main .help-window-title): Fixed margin.
3015
3016 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
3017
3018         Web Inspector: use last selection as complementary signal when applying DOM changes to the text model.
3019         https://bugs.webkit.org/show_bug.cgi?id=101905
3020
3021         Reviewed by Vsevolod Vlasov.
3022
3023         Currently we use heuristics for detecting damaged model range upon DOM mutation.
3024         This change adds signals from the last selection and keyboard events in order to
3025         further improve the heuristics quality.
3026
3027         * inspector/front-end/DefaultTextEditor.js:
3028         (WebInspector.DefaultTextEditor):
3029         (WebInspector.DefaultTextEditor.EditInfo):
3030         (WebInspector.DefaultTextEditor.prototype._handleTextInput):
3031         (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
3032         (WebInspector.DefaultTextEditor.prototype.lastSelection):
3033         (WebInspector.DefaultTextEditor.prototype.wasShown):
3034         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
3035         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
3036         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnDiff):
3037         (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
3038         (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
3039         * inspector/front-end/TextEditorModel.js:
3040         (WebInspector.TextRange.prototype.compareTo):
3041         (WebInspector.TextRange.prototype.shift):
3042         (WebInspector.TextEditorModel.endsWithBracketRegex.):
3043
3044 2012-11-14  Dan Carney  <dcarney@google.com>
3045
3046         [V8] use toV8Fast in all relevant Node getters
3047         https://bugs.webkit.org/show_bug.cgi?id=100851
3048
3049         Reviewed by Kentaro Hara.
3050
3051         The toV8Fast function for Node objects is now called in all getters
3052         instead of toV8.
3053
3054         No new tests. Test coverage extensive.
3055
3056         * bindings/scripts/CodeGeneratorV8.pm:
3057         (GenerateHeader):
3058         (GenerateNormalAttrGetter):
3059         (IsDOMNodeType):
3060         * bindings/scripts/test/V8/V8TestNode.h:
3061         (WebCore::toV8Fast):
3062
3063 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
3064
3065         Clean up use of adjustWindowRect
3066         https://bugs.webkit.org/show_bug.cgi?id=102072
3067
3068         Reviewed by Gyuyoung Kim.
3069
3070         Tested by fast/dom/Window/open-window-min-size.html
3071
3072         * loader/FrameLoader.cpp:
3073         (WebCore::createWindow):
3074
3075             Validate the window size here so that it is not just done for
3076             .open, but also for .showModalDialog. This is compatible with
3077             other browsers such as IE and Firefox (though IE > 6, enforces
3078             a minimum width of 250 instead of 100 as Firefox and us.)
3079
3080         * page/DOMWindow.cpp:
3081         (WebCore):
3082         (WebCore::DOMWindow::adjustWindowRect):
3083
3084             Make it a static method which only takes page. It was never
3085             called from anywhere without a valid page, so the page check
3086             has been turned into an assert, and two of the arguments have
3087             been removed as they can be accessed via the page.
3088
3089         (WebCore::DOMWindow::moveBy):
3090         (WebCore::DOMWindow::moveTo):
3091         (WebCore::DOMWindow::resizeBy):
3092         (WebCore::DOMWindow::resizeTo):
3093
3094             Update use of adjustWindowRect.
3095
3096         (WebCore::DOMWindow::open):
3097
3098             Avoid modifying the WindowFeatures as the WebCore::createWindow
3099             validates and adjusts the arguments.
3100
3101         * page/DOMWindow.h:
3102         (DOMWindow):
3103
3104 2012-11-14  Takashi Sakamoto  <tasak@google.com>
3105
3106         Crash when replacing parts of text inputs with content: url(...)
3107         https://bugs.webkit.org/show_bug.cgi?id=101133
3108
3109         Reviewed by Kent Tamura.
3110
3111         Disable directly setting content of elements in an input element's
3112         shadow dom tree, because the setting breaks input element's behavior.
3113
3114         Tests: fast/forms/number/number-content-url-crash.html
3115                fast/forms/search/search-content-url-crash.html
3116
3117         * css/html.css:
3118         (input::-webkit-textfield-decoration-container):
3119         Use important to disable overriding an input element's content
3120         property.
3121         * html/TextFieldInputType.cpp:
3122         (WebCore::TextFieldInputType::attach):
3123         Added ASSERTION. No content should be applied to
3124         input::-webkit-textfield-decoration-container.
3125
3126 2012-11-14  Kentaro Hara  <haraken@chromium.org>
3127
3128         Unreviewed. Rebaselined run-bindings-tests results.
3129
3130         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
3131         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
3132         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
3133         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
3134         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
3135         (WebCore::V8TestOverloadedConstructors::wrapSlow):
3136
3137 2012-11-14  Anton Muhin  <antonm@chromium.org>
3138
3139         Provide return types for custom WebGLRenderingContext methods
3140         https://bugs.webkit.org/show_bug.cgi?id=100777
3141
3142         Reviewed by Kenneth Russell.
3143
3144         No new tests as doesn't change generated code.
3145
3146         * html/canvas/WebGLRenderingContext.idl:
3147
3148 2012-11-14  Kent Tamura  <tkent@chromium.org>
3149
3150         Support for localization tests of calendar picker
3151         https://bugs.webkit.org/show_bug.cgi?id=102181
3152
3153         Reviewed by Kentaro Hara.
3154
3155         Introduce DateTimeChooserParameters::locale to inform locale to
3156         DateTimeChooser implementations. However we pass defaultLanguage
3157         unless tests calls internals.settings.
3158         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
3159
3160         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
3161
3162         * html/HTMLInputElement.cpp:
3163         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
3164         Set DateTimeChooserParameters::locale up.
3165         * platform/DateTimeChooser.h:
3166         (DateTimeChooserParameters): Add 'locale' member.
3167
3168 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
3169
3170         Web Inspector: highlight is not updating as one edits CSS properties
3171         https://bugs.webkit.org/show_bug.cgi?id=102191
3172
3173         Reviewed by Alexander Pavlov.
3174
3175         We should update highlight upon layout / style recalculation.
3176
3177         * inspector/InspectorInstrumentation.cpp:
3178         (WebCore):
3179         (WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
3180         * inspector/InspectorPageAgent.cpp:
3181         (WebCore::InspectorPageAgent::InspectorPageAgent):
3182         (WebCore::InspectorPageAgent::enable):
3183         (WebCore::InspectorPageAgent::disable):
3184         (WebCore::InspectorPageAgent::domContentEventFired):
3185         (WebCore::InspectorPageAgent::didPaint):
3186         (WebCore::InspectorPageAgent::didLayout):
3187         (WebCore::InspectorPageAgent::didScroll):
3188         (WebCore):
3189         (WebCore::InspectorPageAgent::didRecalculateStyle):
3190         * inspector/InspectorPageAgent.h:
3191
3192 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
3193
3194         Unreviewed, rolling out r134566.
3195         http://trac.webkit.org/changeset/134566
3196         https://bugs.webkit.org/show_bug.cgi?id=102197
3197
3198         "it broke Chromium Android Release build" (Requested by
3199         haraken on #webkit).
3200
3201         * html/HTMLInputElement.cpp:
3202         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
3203         * platform/DateTimeChooser.h:
3204         (DateTimeChooserParameters):
3205
3206 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
3207
3208         Web Inspector: No content available for requests made from flash
3209         https://bugs.webkit.org/show_bug.cgi?id=101560
3210
3211         Reviewed by Pavel Feldman.
3212
3213         Network request data is now saved to inspector cache in following cases:
3214          - Error status code;
3215          - No cached resource available;
3216          - Cached resource has ShouldNotBufferData option set.
3217         Drive-by: refactored didReceiveResponse logic to be clearer.
3218
3219         * inspector/InspectorResourceAgent.cpp:
3220         (WebCore::InspectorResourceAgent::didReceiveResponse):
3221         (WebCore::InspectorResourceAgent::didReceiveData):
3222         * loader/cache/CachedResource.h:
3223         (WebCore::CachedResource::shouldBufferData):
3224
3225 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
3226
3227         Changing pseudoClass (:target) should cause distribution
3228         https://bugs.webkit.org/show_bug.cgi?id=101699
3229
3230         Reviewed by Hajime Morita.
3231
3232         When cssTarget element is changed, we might have to invalidate distribution. We check its necessity
3233         by consulting with SelectRuleFeatureSet.
3234
3235         We also implement invalidateParentDistributionIfNecessary for all collected features in this patch.
3236
3237         Test: fast/dom/shadow/pseudoclass-update-target.html
3238
3239         * dom/Document.cpp:
3240         (WebCore::Document::setCSSTarget):
3241         * dom/ElementShadow.cpp:
3242         (WebCore::invalidateParentDistributionIfNecessary):
3243         (WebCore):
3244         * dom/ElementShadow.h:
3245         (WebCore):
3246         * html/shadow/SelectRuleFeatureSet.h:
3247         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
3248         (SelectRuleFeatureSet):
3249
3250 2012-11-14  Kentaro Hara  <haraken@chromium.org>
3251
3252         [V8] DOM wrapper objects should be collected in minor GC cycles
3253         https://bugs.webkit.org/show_bug.cgi?id=98725
3254
3255         Reviewed by Adam Barth.
3256
3257         Previously minor GC cycles cannot collect DOM Nodes. All DOM Nodes
3258         have to survive two minor GC cycles, be promoted to the old space
3259         and wait for a heavy major GC cycle.
3260
3261         This patch enables V8 to collect DOM Nodes in minor GC cycles.
3262         For real world applications, I confirmed that minor GC cycles
3263         reclaims a substantial amount of memory (24 MB for Facebook,
3264         235 MB for Google Calendar) with acceptable overhead (~10 ms
3265         per minor GC cycle). No performance regression in Dromaeo
3266         DOM tests.
3267
3268         A design document: https://docs.google.com/a/google.com/document/d/16DeHrzkm3cO9XCPT1aK3Y5qgUxXB3RFmueqQWYmN2rI/edit
3269         Performance results: https://docs.google.com/a/google.com/document/d/1h0-EsHu7T0sSMuZm5eE0r1e8sCAzY3weLvsDUpOSngE/edit
3270         A slide: https://docs.google.com/a/google.com/presentation/d/1uifwVYGNYTZDoGLyCb7sXa7g49mWNMW2gaWvMN5NLk8/edit#slide=id.p
3271
3272         * bindings/v8/IntrusiveDOMWrapperMap.h:
3273         (WebCore::IntrusiveDOMWrapperMap::set):
3274         * bindings/v8/V8DOMWindowShell.cpp:
3275         (WebCore::initializeV8IfNeeded):
3276         * bindings/v8/V8GCController.cpp:
3277         (WebCore):
3278         (WebCore::gcTree):
3279         (WebCore::V8GCController::newWrapperBorn):
3280         (WebCore::V8GCController::gcPrologue):
3281         (WebCore::V8GCController::minorGCPrologue):
3282         (WebCore::V8GCController::majorGCPrologue):
3283         (WebCore::V8GCController::gcEpilogue):
3284         (WebCore::V8GCController::minorGCEpilogue):
3285         (WebCore::V8GCController::majorGCEpilogue):
3286         * bindings/v8/V8GCController.h:
3287         (WebCore):
3288         (V8GCController):
3289         * bindings/v8/WorkerContextExecutionProxy.cpp:
3290         (WebCore::WorkerContextExecutionProxy::initIsolate):
3291         * dom/Element.cpp:
3292         (WebCore::Element::focus):
3293         * dom/Node.h:
3294         (WebCore::Node::inEden):
3295         (WebCore::Node::setEden):
3296         (Node):
3297
3298 2012-11-14  Kentaro Hara  <haraken@chromium.org>
3299
3300         [V8] Replace setDOMWrapper() + setJSWrapperForDOMObject() with createDOMWrapper()
3301         https://bugs.webkit.org/show_bug.cgi?id=101917
3302
3303         Reviewed by Adam Barth.
3304
3305         setJSWrapperForDOMObject() is always coupled with setDOMWrapper().
3306         We can replace setDOMWrapper() + setJSWrapperForDOMObject() with
3307         createDOMWrapper(). (c.f. CREATE_DOM_WRAPPER() in JSC)
3308
3309         No tests. No change in behavior.
3310
3311         * bindings/scripts/CodeGeneratorV8.pm:
3312         (GenerateConstructorCallback):
3313         (GenerateEventConstructorCallback):
3314         (GenerateNamedConstructorCallback):
3315         (GenerateToV8Converters):
3316         * bindings/v8/V8DOMWindowShell.cpp:
3317         (WebCore::V8DOMWindowShell::installDOMWindow):
3318         * bindings/v8/V8DOMWrapper.cpp:
3319         (WebCore::V8DOMWrapper::instantiateV8Object):
3320         * bindings/v8/V8DOMWrapper.h:
3321         (V8DOMWrapper):
3322         (WebCore::V8DOMWrapper::createDOMWrapper):
3323         * bindings/v8/WorkerContextExecutionProxy.cpp:
3324         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
3325         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
3326         (WebCore::V8ArrayBuffer::constructorCallback):
3327         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
3328         (WebCore::wrapArrayBufferView):
3329         (WebCore::constructWebGLArray):
3330         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
3331         (WebCore::V8DOMFormData::constructorCallback):
3332         * bindings/v8/custom/V8DataViewCustom.cpp:
3333         (WebCore::V8DataView::constructorCallback):
3334         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
3335         (WebCore::v8HTMLImageElementConstructorCallback):
3336         * bindings/v8/custom/V8IntentConstructor.cpp:
3337         (WebCore::V8Intent::constructorCallback):
3338         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
3339         (WebCore::V8MessageChannel::constructorCallback):
3340         * bindings/v8/custom/V8MutationObserverCustom.cpp:
3341         (WebCore::V8MutationObserver::constructorCallback):
3342         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
3343         (WebCore::V8WebKitPoint::constructorCallback):
3344         * bindings/v8/custom/V8WebSocketCustom.cpp:
3345         (WebCore::V8WebSocket::constructorCallback):
3346         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
3347         (WebCore::V8XMLHttpRequest::constructorCallback):
3348
3349 2012-11-14  Kent Tamura  <tkent@chromium.org>
3350
3351         Support for localization tests of calendar picker
3352         https://bugs.webkit.org/show_bug.cgi?id=102181
3353
3354         Reviewed by Kentaro Hara.
3355
3356         Introduce DateTimeChooserParameters::locale to inform locale to
3357         DateTimeChooser implementations. However we pass defaultLanguage
3358         unless tests calls internals.settings.
3359         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
3360
3361         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
3362
3363         * html/HTMLInputElement.cpp:
3364         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
3365         Set DateTimeChooserParameters::locale up.
3366         * platform/DateTimeChooser.h:
3367         (DateTimeChooserParameters): Add 'locale' member.
3368
3369 2012-11-14  Alexei Filippov  <alph@chromium.org>
3370
3371         Web Inspector: Show total memory in the NMI snapshot header
3372         https://bugs.webkit.org/show_bug.cgi?id=101922
3373
3374         Reviewed by Pavel Feldman.
3375
3376         * inspector/front-end/NativeMemorySnapshotView.js:
3377         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
3378         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
3379
3380 2012-11-14  Jan Keromnes  <janx@linux.com>
3381
3382         Web Inspector: CodeMirrorTextEditor fails to scroll breakpoint into view after the first time
3383         https://bugs.webkit.org/show_bug.cgi?id=102142
3384
3385         Reviewed by Pavel Feldman.
3386
3387         Calling revealLine in highlightLine like in DefaultTextEditor does the trick.
3388
3389         * inspector/front-end/CodeMirrorTextEditor.js:
3390         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
3391
3392 2012-11-13  Kent Tamura  <tkent@chromium.org>
3393
3394         Use menulist-button instead of menulist for date/time input types
3395         https://bugs.webkit.org/show_bug.cgi?id=101886
3396
3397         Reviewed by Hajime Morita.
3398
3399         Both of Chromium-Android and iOS use -webkit-appearance:menulist-button,
3400         not menulist. We had better apply common one by default.
3401
3402         No new tests. Covered by fast/forms/*/*-appearance-*.html.
3403
3404         * css/html.css:
3405         (input[type="date"]): Switch menulist-button from menulist.
3406         (input[type="datetime"]): Ditto.
3407         (input[type="datetime-local"]): Ditto.
3408         (input[type="month"]): Ditto.
3409         (input[type="time"]): Ditto.
3410         (input[type="week"]): Ditto.
3411         (input::-webkit-date-and-time-value):
3412         Add top, right, bottom margins. The right margin is important when
3413         dir=rtl is specified.
3414         whitespace:pre is needed to align baseline in a case of empty values.
3415         * css/themeChromiumAndroid.css:
3416         Remove redundant style declaration.
3417         * css/themeWin.css:
3418         Remove padding adjustment for date/time input types. It is for
3419         textfields.
3420
3421 2012-11-13  Vincent Scheib  <scheib@chromium.org>
3422
3423         Remove RuntimeEnabledFeatures::isPointerLockEnabled.
3424         https://bugs.webkit.org/show_bug.cgi?id=102107
3425
3426         Reviewed by Adam Barth.
3427
3428         The runtime flag is always true now that the feature is enabled by default in Chromium.
3429
3430         * bindings/generic/RuntimeEnabledFeatures.cpp:
3431         (WebCore):
3432         * bindings/generic/RuntimeEnabledFeatures.h:
3433         (RuntimeEnabledFeatures):
3434         * dom/Document.idl:
3435         * dom/Element.idl:
3436         * dom/MouseEvent.idl:
3437
3438 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
3439
3440         Web Inspector: JsDoc-annotate KeyboardShortcuts
3441         https://bugs.webkit.org/show_bug.cgi?id=101301
3442
3443         Reviewed by Pavel Feldman.
3444
3445         JsDoc-annotate KeyboardShortcuts to improve readability.
3446
3447         * inspector/front-end/AdvancedSearchController.js: Fix parameter type.
3448         * inspector/front-end/KeyboardShortcut.js: Add annotations.
3449         * inspector/front-end/Panel.js: Make event parameter typed.
3450         * inspector/front-end/inspector.js: Ditto.
3451
3452 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
3453
3454         Web Inspector: Extract common interface for StatusBarButton and StatusBarCombo
3455         https://bugs.webkit.org/show_bug.cgi?id=101907
3456
3457         Reviewed by Pavel Feldman.
3458
3459         Status bar control element should have common interface for
3460         easier management.
3461         In this patch getter/setter for StatusBarButton "disabled" are replaced
3462         with regular functions "enabled"/"setEnabled"; added "setEnabled"
3463         to StatusBarCombo; added new base class StatusBarItem with
3464         method "setEnabled" and member "element".
3465
3466         * inspector/front-end/CPUProfileView.js: Adopted refactoring.
3467         * inspector/front-end/DockController.js: Ditto.
3468         * inspector/front-end/ScriptsPanel.js: Ditto.
3469         * inspector/front-end/TimelinePanel.js: Ditto.
3470         * inspector/front-end/inspector.js: Ditto.
3471         * inspector/front-end/StatusBarButton.js:
3472         (WebInspector.StatusBarItem): Added.
3473         (WebInspector.StatusBarButton): Replaced getter/setter with
3474         regular functions.
3475         (WebInspector.StatusBarComboBox.prototype.setEnabled): Added.
3476
3477 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
3478
3479         Web Inspector: Console: update tab/shift-tab shortcut description.
3480         https://bugs.webkit.org/show_bug.cgi?id=102175
3481
3482         Reviewed by Pavel Feldman.
3483
3484         For "Tab / Shift-Tab" it said "Next/previous suggestion".
3485         Actually, shift-tab to do nothing, and tab auto-completes common prefix.
3486
3487         * English.lproj/localizedStrings.js: Replaced string.
3488         * inspector/front-end/ConsoleView.js: Updated shortcut registration.
3489
3490 2012-11-13  Dana Jansens  <danakj@chromium.org>
3491
3492         [chromium] Pass showDebugBorders directly to WebLayerTreeSettings, don't use the GraphicsLayer border width setting.
3493         https://bugs.webkit.org/show_bug.cgi?id=102130
3494
3495         Reviewed by James Robinson.
3496
3497         The current method of setting debug borders on GraphicsLayers requires
3498         every GraphicsLayerClient to set the value on the layer(s) it
3499         represents. This skips the NonCompositedContentHost as well as any
3500         other clients other than RenderLayerBacking - including layers from the
3501         inspector.
3502
3503         Instead, pass the debug border setting directly to the
3504         WebLayerTreeSettings where the compositor can use the flag to enable
3505         borders on all layers globally.
3506
3507         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
3508         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
3509         (WebCore::GraphicsLayerChromium::updateMasksToBounds):
3510         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
3511         (WebCore::GraphicsLayerChromium::setupContentsLayer):
3512         * platform/graphics/chromium/GraphicsLayerChromium.h:
3513         (GraphicsLayerChromium):
3514
3515 2012-11-13  Kunihiko Sakamoto  <ksakamoto@chromium.org>
3516
3517         Enable calendar picker for input types datetime/datetime-local
3518         https://bugs.webkit.org/show_bug.cgi?id=101889
3519
3520         Reviewed by Kent Tamura.
3521