Generated should not be supported for things with a shadow
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-10-26  Vincent Scheib  <scheib@chromium.org>
2
3         Generated should not be supported for things with a shadow
4         https://bugs.webkit.org/show_bug.cgi?id=98836
5
6         Unreviewed rollout of rollout of http://trac.webkit.org/changeset/132269.
7         Initial rollout was speculative and was shown not to be related to crashes.
8         Change author: Elliott Sprehn  <esprehn@chromium.org>
9
10         As far as CSS is concerned inputs and things with shadow content inside 
11         shouldn't support pseudo elements like :before, :after or :first-letter.
12         Neither Gecko or Presto supports it, and we only accidentally supported 
13         it. 
14  
15         Until the spec tells us what to do we should disable support. This is 
16         also neccesary because the new generated content implementation doesn't 
17         support shadows. 
18
19         Test: fast/forms/pseudo-elements.html
20
21         * rendering/RenderBlock.cpp:
22         (WebCore::RenderBlock::updateFirstLetter):
23         * rendering/RenderListBox.h:
24         * rendering/RenderObjectChildList.cpp:
25         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
26
27 2012-10-26  Brady Eidson  <beidson@apple.com>
28
29         Crash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived + 78
30         <rdar://problem/12575514> and https://bugs.webkit.org/show_bug.cgi?id=100554
31
32         Reviewed by Alexey Proskuryakov.
33
34         This was fallout from http://trac.webkit.org/changeset/132501 where I missed some of the 
35         spots that call resourceLoadScheduler().
36
37         As a result we were creating more than one ResourceLoadScheduler, allowing the host records 
38         to get out of sync.
39
40         The fix that also results in less #ifdefs scattered throughout the code is to use a single 
41         choke point for all ResourceLoadScheduler access.
42
43         No new tests 
44         (No change of behavior for the default config, not testable at this time in the repro config)
45
46         Add a single choke point for accessing the correct ResourceLoadScheduler:
47         * loader/ResourceLoadScheduler.cpp:
48         (WebCore::defaultResourceLoadScheduler): New private function that keeps the singleton default ResourceLoadScheduler.
49         (WebCore::resourceLoadScheduler): Refactor this function to either ask the LoaderStrategy or call through to
50
51         Revert back to using that single choke point everywhere:
52         * dom/ContainerNode.cpp:
53         (WebCore::ContainerNode::suspendPostAttachCallbacks):
54         (WebCore::ContainerNode::resumePostAttachCallbacks):
55
56         * loader/MainResourceLoader.cpp:
57         (WebCore::MainResourceLoader::loadNow):
58
59         * loader/ResourceLoader.cpp:
60         (WebCore::ResourceLoader::releaseResources):
61         (WebCore::ResourceLoader::willSendRequest):
62
63         * loader/cache/CachedResource.cpp:
64         (WebCore::CachedResource::load):
65
66         * loader/cache/CachedResourceLoader.cpp:
67         (WebCore::CachedResourceLoader::performPostLoadActions):
68
69 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
70
71         Try to fix the windows build
72         https://bugs.webkit.org/show_bug.cgi?id=100556
73
74         Reviewed by Eric Seidel.
75
76         Touch files by adding whitespace to try and make the windows
77         build bot regenerate files.
78
79         No new tests, just kick the bot.
80
81         * dom/DOMAllInOne.cpp:
82         * html/HTMLElementsAllInOne.cpp:
83         * html/shadow/TextControlInnerElements.cpp:
84
85 2012-10-26  Rob Buis  <rbuis@rim.com>
86
87         [BlackBerry] Platform Abstraction for WebKit Resource/Image Loading
88         https://bugs.webkit.org/show_bug.cgi?id=100518
89
90         PR 231732
91
92         Reviewed by Yong Li.
93
94         Use the new resource/image loading abstraction ResourceStore.
95
96         * platform/graphics/blackberry/ImageBlackBerry.cpp:
97         (WebCore::Image::loadPlatformResource):
98
99 2012-10-26  Bear Travis  <betravis@adobe.com>
100
101         [CSS Exclusions] Block children have incorrect offset when shape-inside element lays out below other elements
102         https://bugs.webkit.org/show_bug.cgi?id=98189
103
104         Reviewed by Dirk Schulze.
105
106         The initial code assumed that each block created a new layout state, such that
107         LayoutState::layoutOffset would be specific to each block child of a shape-inside.
108         Typically, however, block children of a shape-inside do not create a new layout state,
109         and therefore we use the current element's offset instead.
110
111         Test: fast/exclusions/shape-inside/shape-inside-subsequent-blocks.html
112
113         * rendering/RenderBlockLineLayout.cpp:
114         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Modified to use only logicalTop
115         rather than LayoutState::layoutOffset::width/height and logicalTop.
116
117 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
118
119         Remove setRenderStyle in favor of callbacks on HTMLOptionElement and HTMLOptGroupElement
120         https://bugs.webkit.org/show_bug.cgi?id=100397
121
122         Reviewed by Ojan Vafai.
123
124         Use Node custom callbacks to support the non-renderer style caching for option
125         and optgroup eliminating the need for setRenderStyle.
126
127         setRenderStyle only existed to support HTMLOptionElement and HTMLOptGroupElement
128         so they could store their RenderStyle even though they have no renderer. This
129         means all style setting went through the virtual call to setRenderStyle, and it
130         also hid the if statement protecting against null renderers meaning we end up
131         checking if the renderer is null repeatedly in recalcStyle. This refactor cleans
132         up recalcStyle to be more clear about what's going on.
133
134         No new tests needed, this is just a refactor.
135
136         * dom/Element.cpp:
137         (WebCore::Element::pseudoStyleCacheIsInvalid):
138         (WebCore::Element::recalcStyle):
139         * dom/Node.cpp:
140         (WebCore::Node::createRenderer):
141         (WebCore::Node::setRenderStyle):
142             Removed this method because it was only here to support HTMLOptionElement
143             and HTMLOptGroupElement. Instead we can use node custom callbacks.
144         * dom/Node.h:
145         (WebCore::Node::nonRendererStyle): Renamed from nonRendererRenderStyle to match other style methods.
146         * dom/NodeRenderStyle.h:
147         (WebCore::Node::renderStyle):
148         * html/HTMLOptGroupElement.cpp:
149         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
150         (WebCore::HTMLOptGroupElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
151         (WebCore::HTMLOptGroupElement::updateNonRenderStyle): Updates the cached non-renderer style.
152         (WebCore::HTMLOptGroupElement::nonRendererStyle):
153         (WebCore::HTMLOptGroupElement::customStyleForRenderer):
154         * html/HTMLOptGroupElement.h:
155         * html/HTMLOptionElement.cpp:
156         (WebCore::HTMLOptionElement::HTMLOptionElement):
157         (WebCore::HTMLOptionElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
158         (WebCore::HTMLOptionElement::updateNonRenderStyle): Updates the cached non-renderer style.
159         (WebCore::HTMLOptionElement::nonRendererStyle):
160         (WebCore::HTMLOptionElement::customStyleForRenderer):
161         (WebCore::HTMLOptionElement::didRecalcStyle): Requests the repaint of the select like setRenderStyle used to.
162         * html/HTMLOptionElement.h:
163
164 2012-10-26  Dirk Schulze  <krit@webkit.org>
165
166         -webkit-clip-path property should just reference clipPath
167         https://bugs.webkit.org/show_bug.cgi?id=100531
168
169         Reviewed by Eric Seidel.
170
171         The -webkit-clip-path property should just reference clipPath. Added a check for that.
172
173         Test: css3/masking/clip-path-reference-of-fake-clipPath.html
174
175         * rendering/RenderLayer.cpp:
176         (WebCore::RenderLayer::paintLayerContents):
177
178 2012-10-26  Aaron Colwell  <acolwell@chromium.org>
179
180         Remove the circular reference between TextTrack and TextTrackCue
181         https://bugs.webkit.org/show_bug.cgi?id=100300
182
183         Reviewed by Eric Carlson.
184
185         Changed TextTrackCue.m_track to a normal pointer to break the circular
186         reference that was keeping both objects from ever getting deleted.
187
188         No new tests. This simply fixes a memory leak.
189
190         * html/track/TextTrack.cpp:
191         (WebCore::TextTrack::~TextTrack):
192         * html/track/TextTrackCue.cpp:
193         (WebCore::TextTrackCue::TextTrackCue):
194         (WebCore::TextTrackCue::~TextTrackCue):
195         (WebCore::TextTrackCue::track):
196         (WebCore::TextTrackCue::setTrack):
197         * html/track/TextTrackCue.h:
198         (TextTrackCue):
199
200 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
201
202         Web Inspector: Breakpoints are not managed correctly when editing uiSourceCode that was bound to ScriptFile after JavaScriptSourceFrame creation.
203         https://bugs.webkit.org/show_bug.cgi?id=100535
204
205         Reviewed by Pavel Feldman.
206
207         Added SourceMappingChanged event to UISourceCode and made
208         JavaScriptSourceFrame update ScriptFile events listeners on it.
209
210         * inspector/front-end/JavaScriptSourceFrame.js:
211         (WebInspector.JavaScriptSourceFrame):
212         (WebInspector.JavaScriptSourceFrame.prototype._onSourceMappingChanged):
213         (WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
214         * inspector/front-end/ResourceScriptMapping.js:
215         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
216         * inspector/front-end/UISourceCode.js:
217         (WebInspector.UISourceCode.prototype.setSourceMapping):
218
219 2012-10-26  Vincent Scheib  <scheib@chromium.org>
220
221         Unreviewed, rolling out r132644.
222         http://trac.webkit.org/changeset/132644
223         https://bugs.webkit.org/show_bug.cgi?id=100497
224
225         Causes webkit_unit_tests
226         MemoryInstrumentationTest.ImageObserver to fail.
227
228         * platform/network/ResourceRequestBase.cpp:
229         (WebCore::ResourceRequestBase::reportMemoryUsage):
230         * platform/network/ResourceRequestBase.h:
231         (ResourceRequestBase):
232         * platform/network/chromium/ResourceRequest.cpp:
233         * platform/network/chromium/ResourceRequest.h:
234
235 2012-10-26  Zeno Albisser  <zeno@webkit.org>
236
237         [Qt] MiniBrowser segfaults on exit after using WebGL.
238         https://bugs.webkit.org/show_bug.cgi?id=100523
239
240         The display connection must not be closed before
241         destroying the offscreen window.
242         Therefore opening the connection is moved to the
243         getXWindow() function. And closing the connection
244         is being moved to the destructor of the offscreen window.
245
246         Reviewed by Kenneth Rohde Christiansen.
247
248
249         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
250         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
251         (WebCore::OffScreenRootWindow::getXWindow):
252         (OffScreenRootWindow):
253         (WebCore::OffScreenRootWindow::display):
254         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
255         (WebCore):
256         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
257         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
258         (WebCore::GraphicsSurfacePrivate::createSurface):
259
260 2012-10-26  Parth Patel  <parpatel@rim.com>
261
262         [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
263         Generic ThreadUnsafe Singleton
264         https://bugs.webkit.org/show_bug.cgi?id=100529
265
266         Reviewed by Yong Li.
267
268         No new tests added as there was no behavioural change.
269
270         * platform/network/blackberry/NetworkManager.cpp:
271         (WebCore):
272         * platform/network/blackberry/NetworkManager.h:
273         (NetworkManager):
274
275 2012-10-26  Mike West  <mkwst@chromium.org>
276
277         Web Inspector: Fix log-type icon alignment.
278         https://bugs.webkit.org/show_bug.cgi?id=100520
279
280         Reviewed by Yury Semikhatsky.
281
282         The icons are just a pixel or two off, and it's driving me nuts.
283
284         * inspector/front-end/inspector.css:
285         (.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before):
286         (.console-warning-level::before):
287
288 2012-10-26  Erik Arvidsson  <arv@chromium.org>
289
290         Replaceable attributes should also have readonly
291         https://bugs.webkit.org/show_bug.cgi?id=91768
292
293         Reviewed by Adam Barth.
294
295         This updates the code generators for JSC and V8 to handle this case correctly.
296
297         * Modules/intents/DOMWindowIntents.idl:
298         * bindings/scripts/CodeGeneratorJS.pm:
299         * bindings/scripts/CodeGeneratorV8.pm:
300         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
301         * bindings/scripts/test/ObjC/DOMTestObj.h:
302         * bindings/scripts/test/ObjC/DOMTestObj.mm:
303         * bindings/scripts/test/TestObj.idl:
304         * bindings/scripts/test/V8/V8TestObj.cpp:
305         * page/DOMWindow.idl:
306         * workers/WorkerContext.idl:
307
308 2012-10-26  Nico Weber  <thakis@chromium.org>
309
310         Clear m_orientation in FrameData::clear() for skia
311         https://bugs.webkit.org/show_bug.cgi?id=100456
312
313         Reviewed by Stephen White.
314
315         clear() is only called by the FrameData destructor and for multi-image
316         images in BitmapImage::destroyDecodedData(). Multi-frame images don't
317         have exif data, so this patch should have no effect in practice. It
318         makes the skia code match the CG code in BitmapImageCG.cpp though.
319
320         * platform/graphics/skia/ImageSkia.cpp:
321         (WebCore::FrameData::clear):
322
323 2012-10-26  Florin Malita  <fmalita@chromium.org>
324
325         Crash on loading SVG filter resource on HTML element
326         https://bugs.webkit.org/show_bug.cgi?id=100491
327
328         Reviewed by Dirk Schulze.
329
330         Skip non-filter elements referenced via -webkit-filter.
331
332         Test: svg/filters/filter-reference-crash.html
333
334         * rendering/RenderLayerFilterInfo.cpp:
335         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
336
337 2012-10-26  Antti Koivisto  <antti@apple.com>
338
339         Lots of time spent under DNSResolveQueue::platformProxyIsEnabledInSystemPreferences
340         https://bugs.webkit.org/show_bug.cgi?id=100514
341
342         Reviewed by Anders Carlsson.
343
344         DNSResolveQueue::platformProxyIsEnabledInSystemPreferences gets called for every link in
345         the document. The function is relatively slow.
346         
347         This patch caches the result of the last check for 5 seconds. Based on code comments
348         prefetching is disabled with proxies due to regressing performance with some configurations.
349         Proxy status changes rarely and a slight reaction delay shoudn't cause practical problems.
350
351         * platform/network/DNSResolveQueue.cpp:
352         (WebCore::DNSResolveQueue::DNSResolveQueue):
353         
354             Add constructor. Also fixes a bug, m_requestsInFlight was not initialized.
355             
356         (WebCore):
357         (WebCore::DNSResolveQueue::isUsingProxy):
358         (WebCore::DNSResolveQueue::add):
359         (WebCore::DNSResolveQueue::fired):
360         * platform/network/DNSResolveQueue.h:
361         (DNSResolveQueue):
362
363 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
364
365         Unreviewed, rolling out r132662.
366         http://trac.webkit.org/changeset/132662
367         https://bugs.webkit.org/show_bug.cgi?id=100528
368
369         It is not necessary any more. (Requested by loislo on
370         #webkit).
371
372         * platform/qt/MemoryUsageSupportQt.cpp:
373         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
374         (WebCore):
375
376 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
377
378         Unreviewed build fix for Qt builders.
379
380         * platform/qt/MemoryUsageSupportQt.cpp:
381
382 2012-10-26  Csaba Osztrogonác  <ossy@webkit.org>
383
384         Unreviewed, rolling out r132658.
385         http://trac.webkit.org/changeset/132658
386         https://bugs.webkit.org/show_bug.cgi?id=100515
387
388         It broke the Qt build
389
390         * inspector/InspectorMemoryAgent.cpp:
391         (WebCore::addPlatformComponentsInfo):
392         (WebCore):
393         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
394         * platform/MemoryUsageSupport.cpp:
395         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
396         * platform/MemoryUsageSupport.h:
397         (ComponentInfo):
398         (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
399         (MemoryUsageSupport):
400         * platform/PlatformMemoryInstrumentation.cpp:
401         (WebCore):
402         * platform/PlatformMemoryInstrumentation.h:
403         (PlatformMemoryTypes):
404         * platform/chromium/MemoryUsageSupportChromium.cpp:
405         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
406
407 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
408
409         Web Inspector: Some context menu items are duplicated on Resources and Sources panels.
410         https://bugs.webkit.org/show_bug.cgi?id=100522
411
412         Reviewed by Pavel Feldman.
413
414         Method appendApplicableItems now receives event as a parameter.
415         HandlerRegistry now makes sure that it is not called more than once for certain context menu event.
416
417         * inspector/front-end/BreakpointsSidebarPane.js:
418         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
419         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
420         (WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
421         (WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
422         * inspector/front-end/CallStackSidebarPane.js:
423         (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
424         * inspector/front-end/ConsoleView.js:
425         * inspector/front-end/ContextMenu.js:
426         (WebInspector.ContextMenu):
427         (WebInspector.ContextMenu.prototype.show):
428         (WebInspector.ContextMenu.prototype.appendApplicableItems):
429         (WebInspector.ContextMenu.Provider.prototype.appendApplicableItems):
430         * inspector/front-end/CookieItemsView.js:
431         (WebInspector.CookieItemsView.prototype._contextMenu):
432         * inspector/front-end/DOMBreakpointsSidebarPane.js:
433         (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
434         * inspector/front-end/DataGrid.js:
435         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
436         * inspector/front-end/DefaultTextEditor.js:
437         (WebInspector.DefaultTextEditor.prototype._contextMenu):
438         * inspector/front-end/ElementsPanel.js:
439         (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
440         * inspector/front-end/ElementsPanelDescriptor.js:
441         (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
442         * inspector/front-end/ElementsTreeOutline.js:
443         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
444         * inspector/front-end/HandlerRegistry.js:
445         (WebInspector.HandlerRegistry.prototype.appendApplicableItems):
446         * inspector/front-end/ImageView.js:
447         (WebInspector.ImageView.prototype._contextMenu):
448         * inspector/front-end/NavigatorView.js:
449         (WebInspector.NavigatorView.prototype.handleContextMenu):
450         * inspector/front-end/NetworkPanel.js:
451         (WebInspector.NetworkLogView.prototype._contextMenu):
452         * inspector/front-end/NetworkPanelDescriptor.js:
453         (WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems):
454         * inspector/front-end/ObjectPropertiesSection.js:
455         (WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
456         (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
457         * inspector/front-end/ProfilesPanel.js:
458         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
459         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
460         * inspector/front-end/ResourcesPanel.js:
461         (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
462         (WebInspector.IndexedDBTreeElement.prototype._handleContextMenuEvent):
463         (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
464         (WebInspector.IDBDatabaseTreeElement.prototype._handleContextMenuEvent):
465         * inspector/front-end/ScriptsNavigator.js:
466         (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
467         * inspector/front-end/ScriptsPanel.js:
468         (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
469         * inspector/front-end/ScriptsPanelDescriptor.js:
470         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
471         * inspector/front-end/StylesSidebarPane.js:
472         (WebInspector.StylesSidebarPane.prototype._contextMenuEventFired):
473         * inspector/front-end/TabbedPane.js:
474         (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
475         * inspector/front-end/TimelinePanel.js:
476         (WebInspector.TimelinePanel.prototype._contextMenu):
477         * inspector/front-end/WatchExpressionsSidebarPane.js:
478         (WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
479         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
480
481 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
482
483         Web Inspector: instrument chromium GlyphCache. It keeps ~2mb data on gmail.
484         https://bugs.webkit.org/show_bug.cgi?id=100515
485
486         Reviewed by Yury Semikhatsky.
487
488         I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
489
490         * inspector/InspectorMemoryAgent.cpp:
491         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
492         * platform/MemoryUsageSupport.cpp:
493         (WebCore::MemoryUsageSupport::reportMemoryUsage):
494         * platform/MemoryUsageSupport.h:
495         (MemoryUsageSupport):
496         * platform/PlatformMemoryInstrumentation.cpp:
497         (WebCore):
498         * platform/PlatformMemoryInstrumentation.h:
499         (PlatformMemoryTypes):
500         * platform/chromium/MemoryUsageSupportChromium.cpp:
501         (reportMemoryUsage):
502         (WebCore::reportGlyphCache):
503         (WebCore):
504         (WebCore::MemoryUsageSupport::reportMemoryUsage):
505
506 2012-10-26  Kent Tamura  <tkent@chromium.org>
507
508         [Chromium] Build fix for r132650.
509         https://bugs.webkit.org/show_bug.cgi?id=100482
510
511         * platform/text/LocaleWin.cpp:
512         (WebCore::LocaleWin::timeFormat):
513
514 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
515
516         [v8] Memory instrumentation: don't count memory of WrapperTypeInfo
517         https://bugs.webkit.org/show_bug.cgi?id=100517
518
519         Reviewed by Alexander Pavlov.
520
521         * bindings/v8/V8PerIsolateData.cpp: when estimating bindings memory size skip
522         pointers to WrapperTypeInfo objects as they are static fields and belong to
523         the data segment.
524         (WTF):
525
526 2012-10-26  Kent Tamura  <tkent@chromium.org>
527
528         Refactor Localizer-related classes.
529         https://bugs.webkit.org/show_bug.cgi?id=100482
530
531         Reviewed by Kentaro Hara.
532
533         - Localizer has unused code
534          Localizer should have function implementations only if they are used in
535          multiple subclasses.
536         - Some Localizer subclasses hide Localizer data members
537         - Should use String::isNull to check initialization-or-not
538
539         No new tests. This should not change any behavior.
540
541         * platform/text/Localizer.h:
542         (Localizer):
543         - timeFormat, shortTimeFormat, and timeAMPMLabels should be pure virtual.
544         - Remove m_localizedDateFormatText, m_localizedShortTimeFormatText, and
545           m_timeAMPMLabels
546         * platform/text/Localizer.cpp:
547         Remove implementations of timeFormat, shortTimeFormat, and timeAMPMLabels.
548
549         * platform/text/LocaleICU.h:
550         (LocaleICU): Introduce m_timeFormatWithSeconds and m_timeFormatWithoutSeconds.
551         * platform/text/LocaleICU.cpp:
552         (WebCore::LocaleICU::initializeDateTimeFormat):
553         Use new data members instead of Localizer data members.
554         (WebCore::LocaleICU::dateFormat): Use isNull.
555
556         * platform/text/LocaleNone.cpp:
557         (LocaleNone): Add timeFormat, shortTimeFormat, timeAMPMLabels
558         implementations, and m_timeAMPMLabels.
559         (WebCore::LocaleNone::timeFormat): Returns the HTML time format.
560         (WebCore::LocaleNone::shortTimeFormat): Returns the HTML time format.
561         (WebCore::LocaleNone::timeAMPMLabels): Returns "AM" and "PM".
562
563         * platform/text/LocaleWin.h:
564         (LocaleWin): Add m_timeFormatWithSeconds.
565         * platform/text/LocaleWin.cpp:
566         (WebCore::LocaleWin::dateFormat): Use isNull.
567         (WebCore::LocaleWin::timeFormat): Use m_timeFormatWithSeconds.
568
569         * platform/text/mac/LocaleMac.h:
570         (LocaleMac): Rename m_localized*TimeFormatText to m_timeFormatWith*Seconds.
571         * platform/text/mac/LocaleMac.mm:
572         (WebCore::LocaleMac::timeFormat): Follow the renaming.
573         (WebCore::LocaleMac::shortTimeFormat): Ditto.
574
575 2012-10-26  Kent Tamura  <tkent@chromium.org>
576
577         Crash in PagePopupController by events after WebPagePopupImpl::closePopup
578         https://bugs.webkit.org/show_bug.cgi?id=100454
579
580         Reviewed by Hajime Morita.
581
582         No new tests. The bug is timing-dependent.
583
584         * page/DOMWindowPagePopup.cpp:
585         (WebCore::DOMWindowPagePopup::~DOMWindowPagePopup):
586         Calls clearPagePopupClient for the associalated PagePopupController object.
587         * page/PagePopupController.cpp:
588         (WebCore::PagePopupController::setValueAndClosePopup):
589         Do nothing if m_popupClient is 0.
590         (WebCore::PagePopupController::localizeNumberString): Ditto.
591         (WebCore::PagePopupController::clearPagePopupClient): Added.
592         * page/PagePopupController.h:
593         (PagePopupController): Declare clearPagePopupClient.
594
595 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
596
597         Web Inspector: Bring device geolocation and orientation emulation from behind the experiment
598         https://bugs.webkit.org/show_bug.cgi?id=100220
599
600         Reviewed by Yury Semikhatsky.
601
602         * inspector/front-end/Settings.js:
603         (WebInspector.ExperimentsSettings):
604         * inspector/front-end/SettingsScreen.js:
605         (WebInspector.UserAgentSettingsTab):
606
607 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
608
609         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
610         https://bugs.webkit.org/show_bug.cgi?id=100497
611
612         Reviewed by Alexander Pavlov.
613
614         Added memory reporting method to Chromium implementation of ResourceRequest.
615
616         * platform/network/ResourceRequestBase.cpp:
617         (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
618         on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
619         rather make ResourceRequestBase::reportMemoryUsage virtual and override it
620         in the descendant but ResourceRequestBase doesn't have any virtual methods
621         and shouldn't be used directly (ResourceRequest should be used instead).
622         * platform/network/ResourceRequestBase.h:
623         (ResourceRequestBase):
624         * platform/network/chromium/ResourceRequest.cpp:
625         (WebCore::ResourceRequest::reportMemoryUsage):
626         (WebCore):
627         * platform/network/chromium/ResourceRequest.h:
628         (ResourceRequest):
629
630 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
631
632         Web Inspector: Remove the on-hover highlighting of console messages
633         https://bugs.webkit.org/show_bug.cgi?id=100511
634
635         Reviewed by Pavel Feldman.
636
637         This clashes with the hovered element highlight in console messages.
638
639         * inspector/front-end/inspector.css:
640         (ol.watch-expressions > li.hovered):
641
642 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
643
644         Unreviewed, rolling out r132612.
645         http://trac.webkit.org/changeset/132612
646         https://bugs.webkit.org/show_bug.cgi?id=100512
647
648         Crashes fast/events/tabindex-focus-blur-all.html in debug mode
649         (Requested by pfeldman on #webkit).
650
651         * rendering/AutoTableLayout.cpp:
652         (WebCore::AutoTableLayout::recalcColumn):
653         * rendering/FixedTableLayout.cpp:
654         (WebCore::FixedTableLayout::calcWidthArray):
655         * rendering/RenderTable.cpp:
656         (WebCore::RenderTable::layout):
657         * rendering/RenderTableCol.cpp:
658         (WebCore::RenderTableCol::styleDidChange):
659         (WebCore::RenderTableCol::updateFromElement):
660         (WebCore::RenderTableCol::computePreferredLogicalWidths):
661         * rendering/RenderTableCol.h:
662         (RenderTableCol):
663
664 2012-10-26  Pavel Feldman  <pfeldman@chromium.org>
665
666         Web Inspector: fast return upon setting the same dock side.
667         https://bugs.webkit.org/show_bug.cgi?id=100510
668
669         Reviewed by Vsevolod Vlasov.
670
671         Added fast return.
672
673         * inspector/front-end/DockController.js:
674
675 2012-10-26  Simon Hausmann  <simon.hausmann@digia.com>
676
677         Unreviewed trivial build fix: It's glXGetCurrentContext not glxGetCurrentContext :)
678
679         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
680         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
681
682 2012-10-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
683
684         Printing should use use high resolution images when available
685         https://bugs.webkit.org/show_bug.cgi?id=100488
686
687         Reviewed by Antti Koivisto.
688
689         The images loaded using -webkit-device-pixel-ratio depends on
690         the display type (deviceScaleFactor) and thus affects which
691         images are being used for printing. Printing should always
692         use the higher resolution images (aka 'retina' images).
693
694         Test: fast/media/mq-pixel-ratio-print.html
695
696         * css/MediaQueryEvaluator.cpp:
697         (WebCore::device_pixel_ratioMediaFeatureEval):
698
699 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
700
701         Web Inspector: NMI instrument InspectorResourceAgent. it caches resources for the front-end.
702         https://bugs.webkit.org/show_bug.cgi?id=100496
703
704         Reviewed by Yury Semikhatsky.
705
706         It is plain instrumentation for InspectorResourceAgent and NetworkResourceData which is used by the agent.
707
708         * dom/WebCoreMemoryInstrumentation.cpp:
709         (WebCore):
710         * dom/WebCoreMemoryInstrumentation.h:
711         (WebCoreMemoryTypes):
712         * inspector/InspectorResourceAgent.cpp:
713         (WebCore::InspectorResourceAgent::reportMemoryUsage):
714         (WebCore):
715         * inspector/InspectorResourceAgent.h:
716         (InspectorResourceAgent):
717         * inspector/NetworkResourcesData.cpp:
718         (WebCore::XHRReplayData::reportMemoryUsage):
719         (WebCore):
720         (WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
721         (WebCore::NetworkResourcesData::reportMemoryUsage):
722         * inspector/NetworkResourcesData.h:
723         (XHRReplayData):
724         (ResourceData):
725         (NetworkResourcesData):
726
727 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
728
729         Unreviewed, rolling out r132493.
730         http://trac.webkit.org/changeset/132493
731         https://bugs.webkit.org/show_bug.cgi?id=100509
732
733         It didn't fix the tests on the bot as we had hoped. (Requested
734         by drott on #webkit).
735
736         * platform/network/cf/ResourceErrorCF.cpp:
737         (WebCore::ResourceError::ResourceError):
738
739 2012-10-26  Zeno Albisser  <zeno@webkit.org>
740
741         [Qt] Temporarily disable use of QXcbNativeInterface in GraphicsSurfaceGLX.
742         https://bugs.webkit.org/show_bug.cgi?id=100493
743
744         Once QXcbNativeInterface::nativeResourceForContext() can provide the
745         GLXContext for an existing QOpenGLContext, this patch shall be reverted.
746
747         Reviewed by Simon Hausmann.
748
749         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
750         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
751
752 2012-10-26  Zeno Albisser  <zeno@webkit.org>
753
754         [Qt] Remove QOpenGL specific code from GraphicsSurfaceGLX.
755         https://bugs.webkit.org/show_bug.cgi?id=100492
756
757         This patch removes most of the QOpenGLContext related code
758         from GraphicsSurfaceGLX. This allows sharing almost all
759         GraphicsSurfaceGLX code with EFL, by relying on pure GLX.
760
761         Reviewed by Kenneth Rohde Christiansen.
762
763         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
764         (WebCore::OffScreenRootWindow::get):
765         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
766         (OffScreenRootWindow):
767         (WebCore):
768         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
769         (WebCore::GraphicsSurfacePrivate::createSurface):
770         (WebCore::GraphicsSurfacePrivate::makeCurrent):
771         (WebCore::GraphicsSurfacePrivate::doneCurrent):
772         (WebCore::GraphicsSurfacePrivate::swapBuffers):
773         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
774         (GraphicsSurfacePrivate):
775         (WebCore::resolveGLMethods):
776
777 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
778
779         [EFL][WK2] Enable WebGL
780         https://bugs.webkit.org/show_bug.cgi?id=97652
781
782         Reviewed by Gyuyoung Kim.
783
784         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
785         Depends on GLX since Evas doesn't provide the necessary functionality.
786
787         No new tests. Covered by existing tests.
788
789         * PlatformEfl.cmake:
790         * platform/graphics/GraphicsContext3D.h:
791         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
792         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
793         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
794         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
795         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
796         (WebCore):
797         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
798         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
799         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
800         * platform/graphics/efl/GraphicsContext3DPrivate.h:
801         (GraphicsContext3DPrivate):
802         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
803         (WebCore::GraphicsContext3D::reshape):
804         * platform/graphics/surfaces/efl: Added.
805         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
806         (WebCore):
807         (WebCore::OffScreenRootWindow::get):
808         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
809         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
810         (WebCore::GraphicsSurfacePrivate::createSurface):
811         (WebCore::GraphicsSurfacePrivate::makeCurrent):
812         (WebCore::GraphicsSurfacePrivate::doneCurrent):
813         (WebCore::GraphicsSurfacePrivate::swapBuffers):
814         (WebCore::GraphicsSurface::platformBeginPaint):
815         (WebCore::GraphicsSurface::createReadOnlyImage):
816         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
817         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
818         (WebCore):
819         (OffScreenRootWindow):
820         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
821         (GraphicsSurfacePrivate):
822         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
823         (WebCore::GraphicsSurfacePrivate::createPixmap):
824         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
825         (WebCore::GraphicsSurfacePrivate::display):
826         (WebCore::GraphicsSurfacePrivate::glxPixmap):
827         (WebCore::GraphicsSurfacePrivate::size):
828         (WebCore::GraphicsSurfacePrivate::glContext):
829         (WebCore::resolveGLMethods):
830         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
831         (WebCore):
832         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
833         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
834         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
835         (WebCore::GraphicsSurfacePrivate::createSurface):
836         (WebCore::GraphicsSurfacePrivate::makeCurrent):
837         (WebCore::GraphicsSurfacePrivate::doneCurrent):
838         (WebCore::GraphicsSurfacePrivate::swapBuffers):
839
840 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
841
842         Web Inspector: [Overrides] Do not persist the User Agent "master switch"
843         https://bugs.webkit.org/show_bug.cgi?id=100484
844
845         Reviewed by Yury Semikhatsky.
846
847         The User Agent override state is managed in the front-end, just like for other override-able parameters.
848
849         * inspector/InspectorResourceAgent.cpp:
850         (WebCore::InspectorResourceAgent::disable):
851         * inspector/front-end/NetworkManager.js:
852         (WebInspector.NetworkManager.get NetworkAgent):
853         (WebInspector.NetworkManager):
854         * inspector/front-end/SettingsScreen.js:
855         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.set checkboxClicked):
856         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement):
857         * inspector/front-end/UserAgentSupport.js:
858         (WebInspector.UserAgentSupport):
859         (WebInspector.UserAgentSupport.prototype.toggleUserAgentOverride):
860         (WebInspector.UserAgentSupport.prototype._userAgentChanged):
861
862 2012-10-26  Takashi Sakamoto  <tasak@google.com>
863
864         [Shadow]: removing styles in shadow dom subtree causes crash.
865         https://bugs.webkit.org/show_bug.cgi?id=100455
866
867         Reviewed by Hajime Morita.
868
869         To quickly check whether shadow roots or elements have any scoped
870         styles or not, elements have hasStyleScoped flag. If elements have
871         any scoped styles, the styles are direct children of the element.
872         The original code just sees how many chilren are scoped style or not.
873         However styles in shadow dom subtree are registered with the shadow
874         root but are not always direct children of shadow roots. So to check
875         whether shadow roots have any scoped styles, modified to count
876         number of styles registered with the shadow root.
877
878         Test: fast/dom/shadow/remove-styles-in-shadow-crash.html
879
880         * dom/Node.cpp:
881         (WebCore::Node::registerScopedHTMLStyleChild):
882         (WebCore::Node::unregisterScopedHTMLStyleChild):
883         Made the above two method virtual. class ShadowRoot overrides these
884         methods.
885         (WebCore::Node::numberOfScopedHTMLStyleChildren):
886         Moved HTMLStyleElement.cpp to Node.cpp, because the above two methods
887         are moved into Node.cpp.
888         * dom/Node.h:
889         (Node):
890         * dom/ShadowRoot.cpp:
891         (WebCore::ShadowRoot::ShadowRoot):
892         (WebCore::ShadowRoot::registerScopedHTMLStyleChild):
893         (WebCore::ShadowRoot::unregisterScopedHTMLStyleChild):
894         Modify to count how many styles are registered with the shadow root.
895         The "counting" is done when styles are registered and unregistered
896         with the shadow root, i.e. style element is inserted into document or
897         removed from document. When unregister some style, there are no more
898         styles registered with the shadow root. Set style scoped flag false.
899         * dom/ShadowRoot.h:
900         (ShadowRoot):
901         * html/HTMLStyleElement.cpp:
902         * html/HTMLStyleElement.h:
903         (WebCore::HTMLStyleElement::isRegisteredAsScoped):
904         Now isRegisteredAsScoped is used in Node.cpp, so removed inline and
905         moved .cpp to .h.
906
907 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
908
909         Unreviewed, rolling out r132589.
910         http://trac.webkit.org/changeset/132589
911         https://bugs.webkit.org/show_bug.cgi?id=100498
912
913         Breaks font-face layout tests (Requested by pfeldman on
914         #webkit).
915
916         * css/CSSFontFaceSource.cpp:
917         (WebCore::CSSFontFaceSource::getFontData):
918
919 2012-10-26  Takashi Sakamoto  <tasak@google.com>
920
921         [Shadow DOM] Needs @host rule for ShadowDOM styling
922         https://bugs.webkit.org/show_bug.cgi?id=88606
923
924         Reviewed by Hajime Morita.
925
926         Implemented @host-@rules according to the shadow dom spec:
927         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
928         The design doc is:
929         https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
930
931         Test: fast/dom/shadow/athost-atrules.html
932
933         * css/CSSGrammar.y.in:
934         Added rules for parsing @host @-rules.
935         * css/CSSParser.cpp:
936         (WebCore::CSSParser::detectAtToken):
937         Added a new token "@host".
938         (WebCore::CSSParser::createHostRule):
939         Added a new method to create an @host @-rule, which is invoked from
940         (WebCore):
941         * css/CSSParser.h:
942         Added a declaration of the above new method: createHostRule.
943         * css/CSSPropertySourceData.h:
944         Added HOST_RULE to enum Type.
945         * css/RuleSet.cpp:
946         (WebCore::RuleData::RuleData):
947         Modified multiple bool arguments into one argument. Now it
948         uses combinations of values from enum AddRuleFlags.
949         (WebCore::RuleSet::addRule):
950         (WebCore::RuleSet::addRegionRule):
951         (WebCore::RuleSet::addStyleRule):
952         Updated according to the RuleData's change.
953         Modified to Invoke increaseSpecificity if the given rule is @host
954         @-rule.
955         (WebCore::RuleSet::addRulesFromSheet):
956         Invoked addHostRule if the given rule is @host @-rule.
957         * css/RuleSet.h:
958         (RuleData):
959         (WebCore::RuleData::increaseSpecificity):
960         Added a new method to increase selector's specificity. This method is
961         used to make @host @-rules' specificity larger than normal author
962         rules' specificity.
963         (RuleSet):
964         * css/StyleResolver.cpp:
965         (WebCore::makeRuleSet):
966         (WebCore::StyleResolver::addHostRule):
967         A wrapper method to invoke StyleScopeResolver::addHostRule. The method
968         is used to make only StyleResolver know an implementation detail about
969         class StyleScopeResolver.
970         (WebCore::StyleResolver::appendAuthorStylesheets):
971         Updated according to the RuleData's change.
972         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
973         A new method to find matched host rules when an element is given.
974         This method invokes
975         StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
976         matched host rules.
977         (WebCore):
978         (WebCore::StyleResolver::matchHostRules):
979         A new method to find matched host rules when an element is given.
980         This method invokes StyleScopeResolver::matchHostRules to find
981         matched host rules.
982         (WebCore::StyleResolver::matchScopedAuthorRules):
983         Modified to invoke matchHostRules.
984         (WebCore::StyleResolver::locateSharedStyle):
985         Disable sibling style cache if the given element is a shadow host and
986         any @host @-rules are applied to the element.
987         * css/StyleResolver.h:
988         (WebCore::StyleResolver::ensureScopeResolver):
989         If no scopeResolver is created, create and return the instance.
990         If created, just return the instance.
991         (StyleResolver):
992         * css/StyleRule.cpp:
993         (WebCore::StyleRuleBase::reportMemoryUsage):
994         (WebCore::StyleRuleBase::destroy):
995         (WebCore::StyleRuleBase::copy):
996         (WebCore::StyleRuleBase::createCSSOMWrapper):
997         (WebCore::StyleRuleHost::StyleRuleHost):
998         Implemented class StyleRuleHost. The class is almost the same as
999         StyleRuleBlock except type.
1000         (WebCore):
1001         * css/StyleRule.h:
1002         (WebCore::StyleRuleBase::isHostRule):
1003         (StyleRuleHost):
1004         (WebCore::StyleRuleHost::create):
1005         (WebCore::StyleRuleHost::copy):
1006         (WebCore):
1007         * css/StyleScopeResolver.cpp:
1008         (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
1009         A new method to create a new RuleSet for the given shadow root.
1010         (WebCore):
1011         (WebCore::StyleScopeResolver::atHostRuleSetFor):
1012         A new private inline method to obtain @host @-rules declared in
1013         the given shadow root.
1014         (WebCore::StyleScopeResolver::addHostRule):
1015         Added a new method to register @host @-rules with shadow roots.
1016         (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
1017         A new method to find whether any @host @-rules are applied to
1018         the given host element.
1019         (WebCore::StyleScopeResolver::matchHostRules):
1020         A new method to find matched rules for the given host element.
1021         (WebCore::StyleScopeResolver::reportMemoryUsage):
1022         * css/StyleScopeResolver.h:
1023         (WebCore):
1024         (StyleScopeResolver):
1025         * css/StyleSheetContents.cpp:
1026         (WebCore::childRulesHaveFailedOrCanceledSubresources):
1027
1028 2012-10-26  Jaehun Lim  <ljaehun.lim@samsung.com>
1029
1030         [CMAKE] Add TextAutosizer.cpp in WebCore/CMakeLists.txt
1031         https://bugs.webkit.org/show_bug.cgi?id=100476
1032
1033         Reviewed by Kentaro Hara.
1034
1035         ENABLE_TEXT_AUTOSIZING option is added in CMAKE,
1036         but the source file for that feature is omitted.
1037
1038         No new tests. Covered by existing tests.
1039
1040         * CMakeLists.txt:
1041
1042 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
1043
1044         RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
1045         https://bugs.webkit.org/show_bug.cgi?id=99861
1046
1047         Reviewed by Ojan Vafai.
1048
1049         RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
1050         widths dirty / layout flag so that we would properly propagate the information to our containing table. This
1051         led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
1052         or else we would ignore the next layout hint on the <col> or <colgroup>.
1053
1054         Tests: fast/table/col-span-change-relayout.html
1055                fast/table/simplified-layout-table.html
1056
1057         * rendering/AutoTableLayout.cpp:
1058         (WebCore::AutoTableLayout::recalcColumn):
1059         * rendering/RenderTable.cpp:
1060         (WebCore::RenderTable::layout):
1061         Simplified the code now that we only need to iterate over the sections.
1062
1063         * rendering/FixedTableLayout.cpp:
1064         (WebCore::FixedTableLayout::calcWidthArray):
1065         Removed call to computePreferredLogicalWidths.
1066
1067         * rendering/RenderTableCol.cpp:
1068         (WebCore::RenderTableCol::styleDidChange):
1069         (WebCore::RenderTableCol::updateFromElement):
1070         Forward a layout hint to the table so that we properly recompute the cell's logical withs.
1071
1072         (WebCore::RenderTableCol::computePreferredLogicalWidths):
1073         (WebCore::RenderTableCol::layout):
1074         Change our implementations of those 2 methods to be no-ops, while enforcing that they are
1075         never called when it was possible.
1076
1077         (WebCore::RenderTableCol::propagateLayoutCueToTable):
1078         New helper function that forward any layout cue to the containing table, this works around
1079         us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
1080         invalidateContainerPreferredLogicalWidths.
1081
1082         * rendering/RenderTableCol.h:
1083         Made the function that we are not expected to be called private.
1084
1085 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
1086
1087         Unreviewed, rolling out r132601.
1088         http://trac.webkit.org/changeset/132601
1089         https://bugs.webkit.org/show_bug.cgi?id=100494
1090
1091         It broke the Qt build (Requested by Ossy on #webkit).
1092
1093         * PlatformEfl.cmake:
1094         * platform/graphics/GraphicsContext3D.h:
1095         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
1096         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
1097         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
1098         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
1099         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
1100         (WebCore):
1101         * platform/graphics/efl/GraphicsContext3DPrivate.h:
1102         (GraphicsContext3DPrivate):
1103         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1104         (WebCore::GraphicsContext3D::reshape):
1105         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
1106         (WebCore::OffScreenRootWindow::get):
1107         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
1108         (OffScreenRootWindow):
1109         (WebCore):
1110         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
1111         (WebCore::GraphicsSurfacePrivate::createSurface):
1112         (WebCore::GraphicsSurfacePrivate::makeCurrent):
1113         (WebCore::GraphicsSurfacePrivate::doneCurrent):
1114         (WebCore::GraphicsSurfacePrivate::swapBuffers):
1115         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
1116         (GraphicsSurfacePrivate):
1117         (WebCore::resolveGLMethods):
1118
1119 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
1120
1121         Memory instrumentation: do not report memory occupied by v8::String
1122         https://bugs.webkit.org/show_bug.cgi?id=100487
1123
1124         Reviewed by Alexander Pavlov.
1125
1126         Pointers to v8::String are skipped when reporting memory usage of V8 bindings'
1127         string cache.
1128
1129         * bindings/v8/V8Binding.cpp:
1130         (WTF):
1131
1132 2012-10-26  Mihnea Ovidenie  <mihnea@adobe.com>
1133
1134         [CSSRegions] Add support for auto-height regions with region-breaks
1135         https://bugs.webkit.org/show_bug.cgi?id=99952
1136
1137         Reviewed by David Hyatt.
1138
1139         This patch takes region breaks into account when computing the height for auto logical height regions.
1140         When a region break is encountered before/after an element from within a flow thread and we are in the layout
1141         phase in which we lay out the flow threads in regions unconstrained, we use the region break to
1142         compute the region override logical content height if the region break fits inside an auto logical height region.
1143         A region break inside an auto logical height region determines the region override logical content height, taking
1144         min/max height into account.
1145
1146         Tests: fast/regions/autoheight-allregions-nobreaks.html
1147                fast/regions/autoheight-allregions.html
1148                fast/regions/autoheight-breakafteralways-maxheight.html
1149                fast/regions/autoheight-breakbeforealways.html
1150                fast/regions/autoheight-firstregion-breakalways.html
1151                fast/regions/autoheight-lastregion-overflowauto-breaksignored.html
1152                fast/regions/autoheight-lastregion-overflowauto.html
1153                fast/regions/autoheight-middleregion.html
1154                fast/regions/autoheight-secondregion-breakoutside.html
1155                fast/regions/autoheight-secondregion.html
1156                fast/regions/autoheight-singleregion-breakafteralways-maxheight.html
1157                fast/regions/autoheight-singleregion-breakafteralways.html
1158                fast/regions/autoheight-singleregion-breakaftermargin.html
1159                fast/regions/autoheight-singleregion-breakbeforealways-minheight.html
1160                fast/regions/autoheight-singleregion-breakbeforealways.html
1161                fast/regions/autoheight-singleregion-multiplebreaks.html
1162                fast/regions/autoheight-singleregion-overflowauto-breaksignored.html
1163                fast/regions/autoheight-singleregion-overflowauto.html
1164
1165         * rendering/RenderBlock.cpp: When encounter a region break before/after an element inside a flow thread,
1166         try to use it to determine the override logical content height for auto logical height regions.
1167         (WebCore::RenderBlock::applyBeforeBreak):
1168         (WebCore::RenderBlock::applyAfterBreak):
1169         * rendering/RenderFlowThread.cpp:
1170         (WebCore::RenderFlowThread::layout):
1171         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
1172         Simulate a region break at the end of the flow thread content.
1173         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
1174         (WebCore::RenderFlowThread::clearOverrideLogicalContentHeightInRegions):
1175         Helper method used to clear the overrideLogicalContentHeight for auto logical height regions.
1176         (WebCore::RenderFlowThread::addForcedRegionBreak):
1177         Extend the method to process region breaks. The method returns true if at least one auto logical height region
1178         has its override logical content height computed.        
1179         * rendering/RenderFlowThread.h:
1180         * rendering/RenderRegion.cpp: Make these methods work with auto logical height regions.
1181         (WebCore::RenderRegion::pageLogicalHeight):
1182         (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
1183
1184 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
1185
1186         [EFL][WK2] Enable WebGL
1187         https://bugs.webkit.org/show_bug.cgi?id=97652
1188
1189         Reviewed by Gyuyoung Kim.
1190
1191         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
1192         Depends on GLX since Evas doesn't provide the necessary functionality.
1193
1194         No new tests. Covered by existing tests.
1195
1196         * PlatformEfl.cmake:
1197         * platform/graphics/GraphicsContext3D.h:
1198         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
1199         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
1200         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
1201         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
1202         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
1203         (WebCore):
1204         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
1205         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
1206         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
1207         * platform/graphics/efl/GraphicsContext3DPrivate.h:
1208         (GraphicsContext3DPrivate):
1209         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1210         (WebCore::GraphicsContext3D::reshape):
1211         * platform/graphics/surfaces/efl: Added.
1212         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
1213         (WebCore):
1214         (WebCore::OffScreenRootWindow::get):
1215         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
1216         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
1217         (WebCore::GraphicsSurfacePrivate::createSurface):
1218         (WebCore::GraphicsSurfacePrivate::makeCurrent):
1219         (WebCore::GraphicsSurfacePrivate::doneCurrent):
1220         (WebCore::GraphicsSurfacePrivate::swapBuffers):
1221         (WebCore::GraphicsSurface::platformBeginPaint):
1222         (WebCore::GraphicsSurface::createReadOnlyImage):
1223         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
1224         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
1225         (WebCore):
1226         (OffScreenRootWindow):
1227         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
1228         (GraphicsSurfacePrivate):
1229         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
1230         (WebCore::GraphicsSurfacePrivate::createPixmap):
1231         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
1232         (WebCore::GraphicsSurfacePrivate::display):
1233         (WebCore::GraphicsSurfacePrivate::glxPixmap):
1234         (WebCore::GraphicsSurfacePrivate::size):
1235         (WebCore::GraphicsSurfacePrivate::glContext):
1236         (WebCore::resolveGLMethods):
1237         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
1238         (WebCore):
1239         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
1240         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
1241         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
1242         (WebCore::GraphicsSurfacePrivate::createSurface):
1243         (WebCore::GraphicsSurfacePrivate::makeCurrent):
1244         (WebCore::GraphicsSurfacePrivate::doneCurrent):
1245         (WebCore::GraphicsSurfacePrivate::swapBuffers):
1246
1247 2012-10-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>
1248
1249         Add feature flags for CSS Device Adaptation
1250         https://bugs.webkit.org/show_bug.cgi?id=95960
1251
1252         Reviewed by Kenneth Rohde Christiansen.
1253
1254         * Configurations/FeatureDefines.xcconfig:
1255         * GNUmakefile.am:
1256         * GNUmakefile.features.am:
1257
1258 2012-10-26  Li Yin  <li.yin@intel.com>
1259
1260         fast/forms/file/input-file-write-files.html should cover correct setting value
1261         https://bugs.webkit.org/show_bug.cgi?id=100085
1262
1263         Reviewed by Kentaro Hara.
1264
1265         From Spec: http://dev.w3.org/html5/spec/single-page.html#dom-input-value-filename
1266         On setting, if the new value is the empty string, it must empty the list of selected
1267         files; otherwise, it must throw an InvalidStateError exception.
1268
1269         Test: fast/forms/file/input-file-value.html
1270
1271         * html/HTMLInputElement.cpp:
1272         (WebCore::HTMLInputElement::setValue):
1273         (WebCore):
1274         * html/HTMLInputElement.h:
1275         (HTMLInputElement):
1276         * html/HTMLInputElement.idl:
1277
1278 2012-10-26  Keishi Hattori  <keishi@webkit.org>
1279
1280         Refactor calendar picker to remove _x/_y from DaysTable
1281         https://bugs.webkit.org/show_bug.cgi?id=100460
1282
1283         Reviewed by Kent Tamura.
1284
1285         _x/_y properties keep the coordinates for the selection but when we add
1286         week and month picking capabilities, the selection can't be expressed as
1287         a set of coordinates. This change will remove it.
1288
1289         No new tests. Covered by calendar-picker-*.html tests.
1290
1291         * Resources/pagepopups/calendarPicker.js:
1292         (DaysTable): Removed _x/_y properties.
1293         (DaysTable.prototype._hasSelection): Changed to refer to the DOM to see if we have a selection.
1294         (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Lookup the selection position.
1295         (DaysTable.prototype.selectDate): Deselect first so we don't have two selections.
1296         (DaysTable.prototype._selectRangeContainingNode): Selects date/week/month containing the given day node.
1297         (DaysTable.prototype._selectRangeAtPosition): Selects date/week/month at the given position.
1298         (DaysTable.prototype._firstNodeInSelectedRange): Returns first selected day node.
1299         (DaysTable.prototype._deselect): Deselects all selections.
1300         (DaysTable.prototype._handleMouseOver): Use _selectRangeContainingNode so we don't have many places handling the selection.
1301         (DaysTable.prototype._handleMouseOut): Use _deselect.
1302         (DaysTable.prototype._handleKey): Lookup the selection position.
1303         (DaysTable.prototype.updateSelection): Use _selectRangeAtPosition.
1304
1305 2012-10-26  Ningxin Hu  <ningxin.hu@intel.com>
1306
1307         FileReader abort case causes Chromium renderer crash
1308         https://bugs.webkit.org/show_bug.cgi?id=99142
1309
1310         Reviewed by Kentaro Hara.
1311
1312         Before dispatching load event, FileReader should check if it is
1313         in aborting.
1314
1315         Test: manually launch fast/files/file-reader-abort.html in Chromium
1316         browser and compare the result with
1317         fast/files/file-reader-abort-expected.txt.
1318
1319         * fileapi/FileReader.cpp:
1320         (WebCore::FileReader::didFinishLoading):
1321
1322 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
1323
1324         Generate less repaint calls during subtree detaching
1325         https://bugs.webkit.org/show_bug.cgi?id=99741
1326
1327         Reviewed by Eric Seidel.
1328
1329         Following bug 98336, detach is now a subtree top-down operation. Because we
1330         track visual overflow from our children during layout for most cases, we can
1331         generate a repaint only on the subtree root.
1332
1333         On http://dglazkov.github.com/performance-tests/redraw.html, this ups the FPS to
1334         26 fps from 22 fps on my MBP (+ 15%). On PerformanceTests/layout/subtree-detach.html,
1335         it decreases the time by 35%. This is due to being the best case and we now generate
1336         only one repaint per detach phase.
1337
1338         Covered by existing pixels tests (including but not limited to repaint ones).
1339
1340         * rendering/RenderObject.cpp:
1341         (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
1342         Changed the function not to be recursive anymore to generate one painting for
1343         our root only. Added a FIXME about using our RenderLayer for repainting to avoid
1344         the cost of computing our absolute repaint rectangle.
1345
1346         * rendering/RenderObjectChildList.cpp:
1347         (WebCore::RenderObjectChildList::removeChildNode):
1348         Removed the logic for repainting in the general case. However we still force a repaint
1349         if we have a RenderLayer as we don't track their overflow in some cases (e.g. positioned
1350         objects). This check is conservative and could be narrowed down (e.g overflow RenderLayers
1351         are properly accounted for in our clipppedOverflowRectForRepaint).
1352
1353 2012-10-26  Kenichi Ishibashi  <bashi@chromium.org>
1354
1355         local(Helvetica) in src descriptor prevent fallback
1356         https://bugs.webkit.org/show_bug.cgi?id=100446
1357
1358         Reviewed by Dan Bernstein.
1359
1360         FontCache::getCachedFontData() has a mechanism that aliases a few pairs
1361         of font family names, so that if the family name specified in the font-family
1362         property is not available on the system, but the its alias is available,
1363         it will be used instead. This is appropriate for the font-family property,
1364         but not for font family names specified in the local() function of the src
1365         descriptor in a @font-face rule.
1366
1367         This patch disables the mechanism while checking src descriptor of @font-face.
1368
1369         No new tests. It's difficult to test the change because 'Helvetica' can
1370         be mapped any other font. For example, chromium DRT uses FontConfig to
1371         map Helvetica to Times New Roman. Other ports may map Helvetica to other
1372         fonts. We can't define the expected result.
1373
1374         * css/CSSFontFaceSource.cpp:
1375         (WebCore::CSSFontFaceSource::getFontData):
1376         Call fontCache()->getCachedFontData() with checkingAlternateName = true.
1377         This disables aliasing font family names in FontCache.
1378
1379 2012-10-26  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1380
1381         Web Inspector: Doctype Audits panel code
1382         https://bugs.webkit.org/show_bug.cgi?id=100371
1383
1384         Reviewed by Alexander Pavlov.
1385
1386         This is a preparation step for ongoing refactoring.
1387         It is much easier to read doctyped code.
1388
1389         * inspector/front-end/AuditRules.js:
1390         (WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
1391         Replaced "undefined" with "null"
1392         * inspector/front-end/AuditsPanel.js:
1393         (WebInspector.AuditCategory.prototype.callbackWrapper):
1394         Removed callback parameter indirection.        
1395         (WebInspector.AuditRuleResult.prototype.addFormatted):
1396         Converted private instance function to scoped function.
1397
1398 2012-10-26  János Badics  <jbadics@inf.u-szeged.hu>
1399
1400         [Qt]REGRESSION(r131428): cookies.db created on wrong place
1401         https://bugs.webkit.org/show_bug.cgi?id=99445
1402
1403         Reviewed by Simon Hausmann.
1404
1405         Added a slash to the path of cookies.db in CookieJarQt.cpp.
1406
1407         * platform/qt/CookieJarQt.cpp:
1408         (WebCore::SharedCookieJarQt::SharedCookieJarQt):
1409
1410 2012-10-26  Adam Barth  <abarth@webkit.org>
1411
1412         Unreviewed. This ASSERT is no longer correct (and fires on many tests.)
1413
1414         * bindings/v8/V8DOMWrapper.h:
1415         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
1416
1417 2012-10-26  Kent Tamura  <tkent@chromium.org>
1418
1419         [Chromium-Win] Support shortTimeFormat
1420         https://bugs.webkit.org/show_bug.cgi?id=100471
1421
1422         Reviewed by Kentaro Hara.
1423
1424         No new tests. Covered by fast/forms/time-multiple-fields/ and
1425         WebKit/chromium/tests/LocaleWinTest.
1426
1427         * platform/text/LocaleWin.cpp:
1428         (WebCore::LocaleWin::shortTimeFormat):
1429         Gets a format by LOCALE_SSHORTTIME. If it fails, remove "<delimiter>ss"
1430         from the format by LOCALE_STIMEFORMAT.
1431         * platform/text/LocaleWin.h:
1432         (LocaleWin): Declare m_timeFormatWithoutSeconds.
1433
1434 2012-10-26  Adam Barth  <abarth@webkit.org>
1435
1436         Unreviewed. Update run-bindings-tests results after recent active DOM
1437         object changes.
1438
1439         * bindings/scripts/test/V8/V8TestInterface.cpp:
1440         (WebCore::V8TestInterface::constructorCallback):
1441         (WebCore::V8TestInterface::wrapSlow):
1442         * bindings/scripts/test/V8/V8TestInterface.h:
1443         (WebCore::V8TestInterface::wrap):
1444         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1445         (WebCore::V8TestNamedConstructorConstructorCallback):
1446         (WebCore::V8TestNamedConstructor::wrapSlow):
1447         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1448         (WebCore::V8TestNamedConstructor::wrap):
1449
1450 2012-10-26  MORITA Hajime  <morrita@google.com>
1451
1452         [V8] REGRESSION(132540) Assertion failure on V8DOMWrapper::setJSWrapperForDOMNode()
1453         https://bugs.webkit.org/show_bug.cgi?id=100462
1454
1455         Reviewed by Adam Barth.
1456
1457         Removed the no longer correct assertion statement.
1458
1459         No new tests. Covered by breaking tests.
1460
1461         * bindings/v8/V8DOMWrapper.cpp:
1462         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
1463
1464 2012-10-25  Adam Barth  <abarth@webkit.org>
1465
1466         [V8] WorkerContextExecutionProxy should use ScopedPersistent
1467         https://bugs.webkit.org/show_bug.cgi?id=100443
1468
1469         Reviewed by Eric Seidel.
1470
1471         This class was manually re-implementing the ScopedPersistent pattern.
1472
1473         * bindings/v8/WorkerContextExecutionProxy.cpp:
1474         (WebCore::WorkerContextExecutionProxy::dispose):
1475         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
1476         (WebCore::WorkerContextExecutionProxy::evaluate):
1477         * bindings/v8/WorkerContextExecutionProxy.h:
1478         (WebCore::WorkerContextExecutionProxy::context):
1479         (WorkerContextExecutionProxy):
1480
1481 2012-10-25  Peter Wang  <peter.wang@torchmobile.com.cn>
1482
1483         A mistake in WebCore::JavaScriptCallFrame::evaluate which will cause assert failed
1484         https://bugs.webkit.org/show_bug.cgi?id=100347
1485
1486         Reviewed by Mark Lam and Filip Pizlo.
1487
1488         In worker context, calling "JSDOMWindowBase::commonJSGlobalData" will cause assert,
1489         since there is "ASSERT(isMainThread())" in "JSDOMWindowBase::commonJSGlobalData".
1490
1491         No new test case, since no behaviour changed.
1492
1493         * bindings/js/JavaScriptCallFrame.cpp:
1494         (WebCore::JavaScriptCallFrame::evaluate):
1495
1496 2012-10-25  Adam Barth  <abarth@webkit.org>
1497
1498         [V8] We can merge the wrapper maps for DOM objects and active DOM objects
1499         https://bugs.webkit.org/show_bug.cgi?id=100432
1500
1501         Reviewed by Eric Seidel.
1502
1503         Now that we use the same object to visit both DOM objects and active
1504         DOM objects, there's no reason to keep them in separate hash maps.
1505
1506         * bindings/scripts/CodeGeneratorV8.pm:
1507         (GetDomMapName):
1508         * bindings/v8/DOMDataStore.cpp:
1509         (WebCore::DOMDataStore::DOMDataStore):
1510         (WebCore::DOMDataStore::~DOMDataStore):
1511         (WebCore::DOMDataStore::reportMemoryUsage):
1512         * bindings/v8/DOMDataStore.h:
1513         (DOMDataStore):
1514         * bindings/v8/V8DOMMap.cpp:
1515         * bindings/v8/V8DOMMap.h:
1516         (NodeWrapperVisitor):
1517         (WebCore):
1518         * bindings/v8/V8DOMWrapper.h:
1519         (V8DOMWrapper):
1520         * bindings/v8/V8GCController.cpp:
1521         (WebCore::V8GCController::majorGCPrologue):
1522         * bindings/v8/custom/V8WebSocketCustom.cpp:
1523         (WebCore::V8WebSocket::constructorCallback):
1524         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
1525         (WebCore::V8XMLHttpRequest::constructorCallback):
1526
1527 2012-10-25  Charles Wei  <charles.wei@torchmobile.com.cn>
1528
1529         [BlackBerry] User Challenged again after browser restart for HTTP/FTP sites already successfully authenticated.
1530         https://bugs.webkit.org/show_bug.cgi?id=100448
1531
1532         Reviewed by George Staikos.
1533
1534         Internally reviewed by Joe Mason.
1535
1536         We didn't check the persistent Credential Storage for Credentials when challenged by the server.
1537
1538         Manual Test: login to ftp://localhost on BlackBerry device, and restart the browser to login again.
1539
1540         * platform/network/blackberry/NetworkJob.cpp:
1541         (WebCore::NetworkJob::sendRequestWithCredentials):
1542
1543 2012-10-25  Joshua Bell  <jsbell@chromium.org>
1544
1545         IndexedDB: Add histogram statistics for backing store errors
1546         https://bugs.webkit.org/show_bug.cgi?id=98465
1547
1548         Reviewed by Adam Barth.
1549
1550         Define a macro for consistent asserting (during development), logging, and recording
1551         internal backing store errors via histograms. Define specific histogram values to
1552         track issues with opening backing stores to gather stats on corruption.
1553
1554         No new tests - just the stats, ma'am, just the stats.
1555
1556         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
1557         (WebCore):
1558         (WebCore::setUpMetadata):
1559         (WebCore::IDBLevelDBBackingStore::open):
1560         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
1561         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
1562         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
1563         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
1564         (WebCore::deleteRange):
1565         (WebCore::IDBLevelDBBackingStore::getObjectStores):
1566         (WebCore::IDBLevelDBBackingStore::createObjectStore):
1567         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
1568         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
1569         (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
1570         (WebCore::IDBLevelDBBackingStore::getIndexes):
1571         (WebCore::IDBLevelDBBackingStore::createIndex):
1572         (WebCore::IDBLevelDBBackingStore::deleteIndex):
1573         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
1574
1575 2012-10-25  Adam Barth  <abarth@webkit.org>
1576
1577         [V8] We can merge ActiveDOMObjectPrologueVisitor with ObjectVisitor
1578         https://bugs.webkit.org/show_bug.cgi?id=100430
1579
1580         Reviewed by Eric Seidel.
1581
1582         There's no reason for these visitors to be separate objects anymore.
1583
1584         * bindings/v8/V8GCController.cpp:
1585         (WebCore::ObjectVisitor::ObjectVisitor):
1586         (WebCore::ObjectVisitor::visitDOMWrapper):
1587         (WebCore::V8GCController::majorGCPrologue):
1588
1589 2012-10-25  Tony Chang  <tony@chromium.org>
1590
1591         Remove unused static methods from DOMTimer.h
1592         https://bugs.webkit.org/show_bug.cgi?id=100427
1593
1594         Reviewed by Kenneth Russell.
1595
1596         Since these values got moved into Settings, these methods are no longer called.
1597
1598         No new tests, removing dead code.
1599
1600         * page/DOMTimer.h:
1601         (DOMTimer): Remove unused getters.
1602
1603 2012-10-25  Leo Yang  <leoyang@rim.com>
1604
1605         [BlackBerry] Infinite redirect loop is not displayed to user
1606         https://bugs.webkit.org/show_bug.cgi?id=100420
1607
1608         Reviewed by George Staikos.
1609
1610         CNN.com is redirecting us infinitely with 302 http code and response body. We catch
1611         it my setting our extended error code as we defined. But we were not trying to notify
1612         error because we have received body. This was wrong. For extended http status code
1613         which is less than 0 we should display our own error page regardless there was data
1614         received from the server or not.
1615
1616         Tested by manually loading CNN.com.
1617
1618         * platform/network/blackberry/NetworkJob.cpp:
1619         (WebCore::NetworkJob::shouldNotifyClientFailed):
1620
1621 2012-10-25  Nico Weber  <thakis@chromium.org>
1622
1623         Flip ImageOrientation coordinate system from lefthanded to righthanded
1624         https://bugs.webkit.org/show_bug.cgi?id=100414
1625
1626         Reviewed by Eric Seidel.
1627
1628         platform/graphics, noteably GraphicsContext uses a right-handed
1629         coordinate system (origin in the top left corner, x growing to the
1630         right, y to the bottom).  ImageOrientation was an outlier from
1631         and used a left-handed coordinate system.  This patch makes
1632         ImageOrientation match the rest of platform/graphics.
1633
1634         This is a pure refactoring and has no observable effects.
1635
1636         * platform/chromium/DragImageChromiumSkia.cpp:
1637         (WebCore::createDragImageFromImage):
1638         * platform/graphics/ImageOrientation.cpp:
1639         (WebCore::ImageOrientation::transformFromDefault):
1640         * platform/graphics/cg/GraphicsContextCG.cpp:
1641         (WebCore::GraphicsContext::drawNativeImage):
1642         * platform/graphics/skia/ImageSkia.cpp:
1643         (WebCore::BitmapImage::draw):
1644         * platform/mac/DragImageMac.mm:
1645         (WebCore::createDragImageFromImage):
1646         * rendering/RenderObject.cpp:
1647         (WebCore::RenderObject::shouldRespectImageOrientation):
1648
1649 2012-10-25  Keishi Hattori  <keishi@webkit.org>
1650
1651         Hide popup while transitioning from the suggestion picker to the calendar picker
1652         https://bugs.webkit.org/show_bug.cgi?id=99537
1653
1654         Reviewed by Kent Tamura.
1655
1656         Right now you can see a squished calendar picker while transitioning
1657         from suggestion picker from calendar picker. This change will hide the
1658         popup before opening the calendar picker.
1659
1660         No new tests.
1661
1662         * Resources/pagepopups/pickerCommon.js: Hiding the window will also trigger a resize event so I created a separate event, didOpenPicker.
1663         (hideWindow): Resize the window to 1x1 because we can't resize to 0x0.
1664         * Resources/pagepopups/suggestionPicker.js:
1665         (SuggestionPicker.prototype.selectEntry): Hide the window first and then open the calendar picker.
1666
1667 2012-10-25  Anders Carlsson  <andersca@apple.com>
1668
1669         Fix build.
1670
1671         * page/mac/EventHandlerMac.mm:
1672         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
1673
1674 2012-10-25  Anders Carlsson  <andersca@apple.com>
1675
1676         Remove feed and feeds URL scheme workarounds
1677         https://bugs.webkit.org/show_bug.cgi?id=100442
1678
1679         Reviewed by Dan Bernstein.
1680
1681         * dom/DocumentEventQueue.cpp:
1682         (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
1683         * page/mac/EventHandlerMac.mm:
1684         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
1685
1686 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
1687
1688         Unreviewed, rolling out r132514.
1689         http://trac.webkit.org/changeset/132514
1690         https://bugs.webkit.org/show_bug.cgi?id=100440
1691
1692         "Broke chromium content_browsertests AccessibilityAriaMenu
1693         AccessibilityInputRange AccessibilityListMarkers" (Requested
1694         by scheib on #webkit).
1695
1696         * accessibility/AXObjectCache.cpp:
1697         (WebCore::AXObjectCache::getOrCreate):
1698         (WebCore::AXObjectCache::contentChanged):
1699         (WebCore::AXObjectCache::childrenChanged):
1700         (WebCore::AXObjectCache::handleAriaRoleChanged):
1701         * accessibility/AXObjectCache.h:
1702         (AXObjectCache):
1703         (WebCore::AXObjectCache::contentChanged):
1704         * accessibility/AccessibilityObject.cpp:
1705         (WebCore::AccessibilityObject::AccessibilityObject):
1706         * accessibility/AccessibilityObject.h:
1707         (WebCore::AccessibilityObject::contentChanged):
1708         (AccessibilityObject):
1709         * accessibility/AccessibilityRenderObject.cpp:
1710         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
1711         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
1712         (WebCore::AccessibilityRenderObject::contentChanged):
1713         * accessibility/AccessibilityRenderObject.h:
1714         (AccessibilityRenderObject):
1715         * accessibility/AccessibilityScrollView.cpp:
1716         (WebCore::AccessibilityScrollView::isAttachment):
1717         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
1718         (WebCore::AccessibilityScrollView::updateScrollbars):
1719         (WebCore::AccessibilityScrollView::webAreaObject):
1720         (WebCore::AccessibilityScrollView::elementRect):
1721         (WebCore::AccessibilityScrollView::documentFrameView):
1722         (WebCore::AccessibilityScrollView::parentObject):
1723         (WebCore::AccessibilityScrollView::parentObjectIfExists):
1724         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
1725         (WebCore::AccessibilityScrollView::scrollTo):
1726         * accessibility/AccessibilityScrollView.h:
1727         (WebCore::AccessibilityScrollView::scrollView):
1728         (AccessibilityScrollView):
1729         * accessibility/AccessibilityTable.cpp:
1730         (WebCore::AccessibilityTable::isDataTable):
1731         * accessibility/chromium/AXObjectCacheChromium.cpp:
1732         (WebCore::AXObjectCache::postPlatformNotification):
1733         * dom/Element.cpp:
1734         (WebCore::Element::attributeChanged):
1735         * rendering/RenderBlock.cpp:
1736         (WebCore::RenderBlock::deleteLineBoxTree):
1737         (WebCore::RenderBlock::createAndAppendRootInlineBox):
1738         * rendering/RenderObject.cpp:
1739         (WebCore::RenderObject::styleWillChange):
1740         * rendering/RenderText.cpp:
1741         (WebCore::RenderText::setText):
1742
1743 2012-10-25  Dan Bernstein  <mitz@apple.com>
1744
1745         <rdar://problem/12544626> [cg] RenderBlock::selectionGaps() is extremely slow when there are many floats
1746         https://bugs.webkit.org/show_bug.cgi?id=100413
1747
1748         Reviewed by Anders Carlsson.
1749
1750         RenderBlock::selectionGaps() calls GraphicsContext::clipOut(const IntRect&) for each float.
1751         Sped up the Core Graphics implementation of this function considerably by removing an
1752         unnecessary call to CGContextGetClipBoundingBox.
1753
1754         * platform/graphics/cg/GraphicsContextCG.cpp:
1755         (WebCore::GraphicsContext::clipOut): Changed to use CGRectInfinite rather than the bounding
1756         box of the current clip.
1757
1758 2012-10-25  Tim Horton  <timothy_horton@apple.com>
1759
1760         REGRESSION (132422): Tiles don't move when the Find dialog causes programmatic scrolls
1761         https://bugs.webkit.org/show_bug.cgi?id=100433
1762         <rdar://problem/12575582>
1763
1764         Reviewed by Simon Fraser.
1765
1766         Actually update GraphicsLayer positions from updateMainFrameScrollPosition if
1767         we're doing a programmatic scroll; otherwise programmatic scrolls while scrolling
1768         on the main thread will short-circuit and end up only updating the GraphicsLayer's
1769         notion of its current position, but never synchronizing that to the layer itself.
1770
1771         No new tests, as this is currently untestable.
1772
1773         * page/scrolling/ScrollingCoordinator.cpp:
1774         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
1775
1776 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
1777
1778         Tiled layers are missing content on zooming
1779         https://bugs.webkit.org/show_bug.cgi?id=100422
1780
1781         Reviewed by Beth Dakin.
1782
1783         Tiled layers using TileCaches were missing content after
1784         zooming. TileCache was confused in the presence of scaling;
1785         it unapplies the scale on the layer above the tiles (so the tiles
1786         live in screen space), and computed the tile coverage rect
1787         in these tile coordinates. This worked for the page tile cache,
1788         because its visibleRect was sent in pre-scaled. However, for
1789         tiled layer TileCaches this was wrong.
1790         
1791         Fix by scaling the tile coverage rect by m_scale before
1792         using it to compute which tiles to throw away and bring in.
1793         
1794         To fix the problem of the visibleRect being pre-scaled
1795         for the page tile cache, remove the setting of the visibleRect
1796         in RenderLayerCompositor::frameViewDidScroll(), and rely on 
1797         GraphicsLayerCA::updateVisibleRect() which computes the
1798         visible rect in the correct, layer coordinates.
1799
1800         Test: compositing/tiling/tile-cache-zoomed.html
1801
1802         * platform/graphics/ca/GraphicsLayerCA.cpp:
1803         (WebCore::GraphicsLayerCA::updateVisibleRect): Call setVisibleRect()
1804         for all tile cache layers, not just tiled layer ones, but only do
1805         the visible rect adjustment for those that are not the page tile cache.
1806         * platform/graphics/ca/mac/TileCache.mm:
1807         (WebCore::TileCache::revalidateTiles): Use a coverageRectInTileCoords rect,
1808         which is scaled to be in the same coordinate space as the tile grid.
1809         * rendering/RenderLayerCompositor.cpp:
1810         (WebCore::RenderLayerCompositor::frameViewDidScroll): Remove the code
1811         that sets the setVisibleRect() on the TiledBacking.
1812
1813 2012-10-25  Adam Barth  <abarth@webkit.org>
1814
1815         [V8] ActiveDOMNodes no longer require a separate wrapper map
1816         https://bugs.webkit.org/show_bug.cgi?id=100352
1817
1818         Reviewed by Eric Seidel.
1819
1820         There is no longer any reason to keep a separate DOM wrapper map for
1821         active DOM nodes. We can simply store them in the normal DOM node
1822         wrapper map (which is more efficient because it doesn't use a HashMap).
1823
1824         * bindings/scripts/CodeGeneratorV8.pm:
1825         (GetDomMapName):
1826         * bindings/v8/DOMDataStore.cpp:
1827         (WebCore::DOMDataStore::DOMDataStore):
1828         (WebCore::DOMDataStore::~DOMDataStore):
1829         (WebCore::DOMDataStore::reportMemoryUsage):
1830         * bindings/v8/DOMDataStore.h:
1831         (DOMDataStore):
1832         * bindings/v8/IntrusiveDOMWrapperMap.h:
1833         * bindings/v8/V8DOMMap.cpp:
1834         * bindings/v8/V8DOMMap.h:
1835         (WebCore):
1836         * bindings/v8/V8DOMWrapper.cpp:
1837         * bindings/v8/V8DOMWrapper.h:
1838         (V8DOMWrapper):
1839         (WebCore::V8DOMWrapper::getCachedWrapper):
1840
1841 2012-10-25  Tony Chang  <tony@chromium.org>
1842
1843         Unreviewed, fix the build on Mac.
1844
1845         Putting the getter in the Settings.h caused the global variable to be inlined and needing it to be exported.
1846         Instead, put the implementation in the cpp file.
1847
1848         * page/Settings.cpp:
1849         (WebCore::Settings::defaultMinDOMTimerInterval):
1850         (WebCore):
1851         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
1852         * page/Settings.h:
1853         (Settings):
1854
1855 2012-10-25  Tony Chang  <tony@chromium.org>
1856
1857         Move default DOM Timer values into Settings
1858         https://bugs.webkit.org/show_bug.cgi?id=100405
1859
1860         Reviewed by Kenneth Russell.
1861
1862         Move the global values for defaultMinDOMTimerInterval and defaultDOMTimerAlignmentInterval into
1863         the Settings object. This is more consistent with other global settings and allows us to remove
1864         the setters on the DOMTimer object.
1865
1866         No new tests, this is a refactor.
1867
1868         * page/DOMTimer.cpp: Remove globals.
1869         * page/DOMTimer.h:
1870         (WebCore::DOMTimer::defaultMinTimerInterval): Call through to Settings
1871         (WebCore::DOMTimer::defaultTimerAlignmentInterval): Call through to Settings.
1872         (DOMTimer): Remove setters.
1873         * page/Settings.cpp:
1874         (WebCore::Settings::setDefaultMinDOMTimerInterval): Use a global in Settings.
1875         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval): Use a global in Settings.
1876         * page/Settings.h:
1877         (WebCore::Settings::defaultMinDOMTimerInterval): Inline the getter.
1878         (WebCore::Settings::defaultDOMTimerAlignmentInterval): Inline the getter.
1879         (Settings): Add globals.
1880
1881 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
1882
1883         Report the tile coverage rect in layer coords, and add some tests for tiled backing and zooming
1884         https://bugs.webkit.org/show_bug.cgi?id=100416
1885
1886         Reviewed by Beth Dakin.
1887
1888         The tileCoverageRect is computed in "tile" coordinates, which don't match
1889         the visibleRect coordinates. It's more useful when testing to see the
1890         tile coverage relative to the view bounds, so unapply the scale whem
1891         reporting tile coverage in tests.
1892
1893         Tests: platform/mac/tiled-drawing/tiled-drawing-zoom-scrolled.html
1894                platform/mac/tiled-drawing/tiled-drawing-zoom.html
1895
1896         * platform/graphics/ca/mac/TileCache.h:
1897         * platform/graphics/ca/mac/TileCache.mm:
1898         (WebCore::TileCache::tileCoverageRect):
1899
1900 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
1901
1902         Unreviewed, rolling out r132269.
1903         http://trac.webkit.org/changeset/132269
1904         https://bugs.webkit.org/show_bug.cgi?id=100412
1905
1906         "Speculative rollout of r132269 in hopes of fixing a
1907         mysterious recalcStyle crasher" (Requested by eseidel on
1908         #webkit).
1909
1910         * rendering/RenderBlock.cpp:
1911         (WebCore::RenderBlock::updateFirstLetter):
1912         * rendering/RenderListBox.h:
1913         * rendering/RenderObjectChildList.cpp:
1914         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
1915
1916 2012-10-25  Stephen White  <senorblanco@chromium.org>
1917
1918         Change ReferenceFilterOperations to reference (own) the data passed to
1919         them.
1920         https://bugs.webkit.org/show_bug.cgi?id=97715
1921
1922         Reviewed by Nate Chapin.
1923
1924         Covered by css3/filters/reference-filter-update-after-remove.html
1925
1926         * css/CachedSVGDocumentReference.h: Added.
1927         (CachedSVGDocumentReference):
1928         New class which holds a CachedResourceHandle<CachedSVGDocument>, but
1929         can be placed in ReferenceFilterOperation's Data.  It also calls
1930         addClient() / removeClient(), in order to keep the CachedSVGDocument
1931         alive until the FilterEffectRenderer can get it.
1932         (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
1933         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
1934         (WebCore::CachedSVGDocumentReference::document):
1935         Accessor for the underlying document.
1936         * css/StyleResolver.cpp:
1937         (WebCore::StyleResolver::loadPendingSVGDocuments):
1938         Wrap the CachedSVGDocument handle in a CachedSVGDocumentReference, and
1939         transfer ownership to the ReferenceFilterOperation.
1940         (WebCore::StyleResolver::createFilterOperations):
1941         Same as above.
1942         * platform/graphics/filters/FilterOperation.h:
1943         (Data):
1944         New base class for generic data which can be deleted polymorphically.
1945         (WebCore::FilterOperation::ReferenceFilterOperation::data):
1946         (WebCore::FilterOperation::ReferenceFilterOperation::setData):
1947         Use the above-mentioned Data class, instead of a void *.
1948         (WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
1949         Don't initialize data to null; OwnPtr will do that for us.
1950         * rendering/FilterEffectRenderer.cpp:
1951         (WebCore::FilterEffectRenderer::buildReferenceFilter):
1952         Extract the cached SVG document from the reference data.
1953         * rendering/RenderLayerFilterInfo.cpp:
1954         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
1955         Extract the cached SVG document from the reference data.
1956
1957 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
1958
1959         Incorrect tile size in the slow scrolling case
1960         https://bugs.webkit.org/show_bug.cgi?id=100411
1961
1962         Reviewed by Beth Dakin.
1963
1964         If we're in slow scrolling mode, we don't want to inflate the
1965         coverage rect based on scrollability. This ensures that the few
1966         big tiles we create have the correct size.
1967
1968         * platform/graphics/ca/mac/TileCache.mm:
1969         (WebCore::TileCache::computeTileCoverageRect):
1970
1971 2012-10-25  Nico Weber  <thakis@chromium.org>
1972
1973         Move ImageOrientation transform back in CG space (lower-left origin), adapt the skia code to work with that, turn on feature for chromium
1974         https://bugs.webkit.org/show_bug.cgi?id=100401
1975
1976         Reviewed by Eric Seidel.
1977
1978         This is an alternative fix for the regression caused by r132384 / bug
1979         100179. The bug exists because different pieces of code didn't agree
1980         which space the transformation returned by ImageOrientation was in.
1981
1982         r132384 moved it from CG coordinates to skia coordinates, but didn't
1983         do it completetely. This CL reverts this part of r132384 so that the
1984         transformation is in CG coordinates again, and adapts the skia code to
1985         work in that space.
1986
1987         Alternatively, https://bugs.webkit.org/show_bug.cgi?id=100319 woudl
1988         make the cg code work with the transform in skia coordinates.
1989
1990         Covered by fast/images/exif-orientation.html
1991
1992         * platform/chromium/DragImageChromiumSkia.cpp:
1993         (WebCore::createDragImageFromImage):
1994         * platform/graphics/ImageOrientation.cpp:
1995         (WebCore::ImageOrientation::transformFromDefault):
1996         * platform/graphics/ImageOrientation.h:
1997         (WebCore):
1998         (WebCore::ImageOrientation::usesWidthAsHeight):
1999         (WebCore::ImageOrientation::fromEXIFValue):
2000         (ImageOrientation):
2001         * platform/graphics/cg/GraphicsContextCG.cpp:
2002         (WebCore::GraphicsContext::drawNativeImage):
2003         * platform/graphics/skia/ImageSkia.cpp:
2004         (WebCore::BitmapImage::draw):
2005         * platform/mac/DragImageMac.mm:
2006         (WebCore::createDragImageFromImage):
2007         * rendering/RenderObject.cpp:
2008         (WebCore::RenderObject::shouldRespectImageOrientation):
2009
2010 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
2011
2012         Log the tile cache tile size in test output
2013         https://bugs.webkit.org/show_bug.cgi?id=100409
2014
2015         Reviewed by Beth Dakin.
2016
2017         When dumping tile cache information in tests, also dump the tile size.
2018
2019         * platform/graphics/TiledBacking.h:
2020         * platform/graphics/ca/GraphicsLayerCA.cpp:
2021         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
2022         * platform/graphics/ca/mac/TileCache.h:
2023
2024 2012-10-25  Arnaud Renevier  <a.renevier@sisa.samsung.com>
2025
2026         do not multiply/demultiply colors when alpha is 255
2027         https://bugs.webkit.org/show_bug.cgi?id=89246
2028
2029         Reviewed by Kenneth Rohde Christiansen.
2030
2031         Do not use colorFromPremultipliedARGB in getImageData nor
2032         premultipliedARGBFromColor in putByteArray. Avoiding object creation
2033         and function call make canvas.getImageData about 10% faster and
2034         canvas.putImageData about 30% faster.
2035
2036         Also, we avoid multiplication/demultiplication computation when alpha
2037         is 255. Result is the same, but when there is no transparency,
2038         canvas.getImageData is about 4x faster, and canvas.putImageData is
2039         about 2x faster.
2040
2041         No new tests. No change in behavior.
2042
2043         * platform/graphics/cairo/ImageBufferCairo.cpp:
2044         (WebCore::getImageData):
2045         (WebCore::ImageBuffer::putByteArray):
2046
2047 2012-10-25  Nate Chapin  <japhet@chromium.org>
2048
2049         Add a main resource type to the memory cache
2050         https://bugs.webkit.org/show_bug.cgi?id=99864
2051
2052         Reviewed by Adam Barth.
2053
2054         No new tests, no functionality change.
2055
2056         * inspector/InspectorPageAgent.cpp:
2057         (WebCore::hasTextContent):
2058         (WebCore::InspectorPageAgent::cachedResourceType):
2059         * loader/SubresourceLoader.cpp:
2060         (WebCore::SubresourceLoader::willSendRequest):
2061         (WebCore::SubresourceLoader::didReceiveResponse):
2062         (WebCore::SubresourceLoader::didFail):
2063         * loader/cache/CachedRawResource.cpp:
2064         (WebCore::CachedRawResource::CachedRawResource):
2065         (WebCore::CachedRawResource::addAdditionalRequestHeaders):
2066         (WebCore):
2067         (WebCore::CachedRawResource::setShouldBufferData):
2068         (WebCore::CachedRawResource::loader):
2069         (WebCore::CachedRawResource::clear):
2070         * loader/cache/CachedRawResource.h:
2071         (WebCore):
2072         (CachedRawResource):
2073         * loader/cache/CachedResource.cpp:
2074         (WebCore::defaultPriorityForResourceType):
2075         (WebCore::cachedResourceTypeToTargetType):
2076         (WebCore::CachedResource::updateResourceRequest):
2077         (WebCore):
2078         * loader/cache/CachedResource.h:
2079         (WebCore::CachedResource::setResourceError):
2080         (WebCore::CachedResource::resourceError):
2081         (CachedResource):
2082         (WebCore::CachedResource::ignoreForRequestCount):
2083         * loader/cache/CachedResourceLoader.cpp:
2084         (WebCore::createResource):
2085         (WebCore::CachedResourceLoader::requestRawResource):
2086         (WebCore::CachedResourceLoader::checkInsecureContent):
2087         (WebCore::CachedResourceLoader::canRequest):
2088         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
2089         * loader/cache/CachedResourceLoader.h:
2090         (CachedResourceLoader):
2091         * platform/network/ResourceLoadPriority.h:
2092         * platform/network/cf/ResourceRequestCFNet.h:
2093         (WebCore::toResourceLoadPriority):
2094         (WebCore::toHTTPPipeliningPriority):
2095
2096 2012-10-25  Ojan Vafai  <ojan@chromium.org>
2097
2098         [V8] Add histograms to measure V8 work done during window close and navigation
2099         https://bugs.webkit.org/show_bug.cgi?id=100358
2100
2101         Reviewed by Adam Barth.
2102
2103         * bindings/v8/ScriptController.cpp:
2104         (WebCore::ScriptController::clearForClose):
2105         (WebCore::ScriptController::clearWindowShell):
2106
2107 2012-10-25  Antti Koivisto  <antti@apple.com>
2108
2109         Avoid unnecessary style recalcs on id attribute mutation.
2110         https://bugs.webkit.org/show_bug.cgi?id=100395
2111
2112         Reviewed by Andreas Kling.
2113
2114         There is no need to invalidate element style on id attribute change if neither the old nor the new id were 
2115         mentioned in any stylesheet. This is similar to the optimization we already have for class attributes.
2116         
2117         Recalculating element style is expensive. It seems id attribute mutation is often used in scripts for purposes other than styling. 
2118
2119         * css/StyleResolver.cpp:
2120         (WebCore::StyleResolver::hasSelectorForId):
2121         (WebCore):
2122         * css/StyleResolver.h:
2123         * dom/Element.cpp:
2124         (WebCore::makeIdForStyleResolution):
2125         (WebCore):
2126         (WebCore::Element::attributeChanged):
2127
2128 2012-10-25  Dominic Mazzoni  <dmazzoni@google.com>
2129
2130         AX: Notification should be sent when accessibilityIsIgnored changes
2131         https://bugs.webkit.org/show_bug.cgi?id=99547
2132
2133         Reviewed by Chris Fleizach.
2134
2135         Adds a new flag in AccessibilityObject that keeps track of the most recent
2136         value of accessibilityIsIgnored(). After certain events such as an ARIA
2137         attribute change or content change, checks the new value of
2138         accessibilityIsIgnored() and posts a "children changed" notification on the
2139         parent node if it changed, making sure the parent recomputes its vector of
2140         (unignored) children.
2141
2142         Also moves handling of attribute changes to AXObjectCache, and sends
2143         notifications for some attribute changes that were previously silent. On
2144         Chromium, all changes to an accessibility object's attributes should
2145         result in some notification.
2146
2147         Some tests would have broken because an AccessibilityScrollView was created
2148         and holding a reference to a ScrollView for an iframe after it was deleted,
2149         so this change switches AccessibilityScrollView to hold a weak reference
2150         to ScrollView instead.
2151
2152         Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
2153                platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
2154                platform/chromium/accessibility/text-change-notification.html
2155
2156         * accessibility/AXObjectCache.cpp:
2157         (WebCore::AXObjectCache::focusedUIElementForPage):
2158         (WebCore::AXObjectCache::getOrCreate):
2159         (WebCore::AXObjectCache::textChanged):
2160         (WebCore):
2161         (WebCore::AXObjectCache::childrenChanged):
2162         (WebCore::AXObjectCache::handleAriaRoleChanged):
2163         (WebCore::AXObjectCache::handleAttributeChanged):
2164         (WebCore::AXObjectCache::labelChanged):
2165         (WebCore::AXObjectCache::recomputeIsIgnored):
2166         * accessibility/AXObjectCache.h:
2167         (AXObjectCache):
2168         (WebCore::AXObjectCache::childrenChanged):
2169         (WebCore::AXObjectCache::textChanged):
2170         (WebCore::AXObjectCache::handleAttributeChanged):
2171         (WebCore::AXObjectCache::recomputeIsIgnored):
2172         * accessibility/AccessibilityNodeObject.cpp:
2173         (WebCore::AccessibilityNodeObject::insertChild):
2174         * accessibility/AccessibilityObject.cpp:
2175         (WebCore::AccessibilityObject::AccessibilityObject):
2176         (WebCore::AccessibilityObject::cachedIsIgnoredValue):
2177         (WebCore):
2178         (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
2179         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
2180         * accessibility/AccessibilityObject.h:
2181         (WebCore::AccessibilityObject::textChanged):
2182         (AccessibilityObject):
2183         * accessibility/AccessibilityRenderObject.cpp:
2184         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
2185         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
2186         (WebCore::AccessibilityRenderObject::textChanged):
2187         (WebCore::AccessibilityRenderObject::addHiddenChildren):
2188         (WebCore::AccessibilityRenderObject::addChildren):
2189         * accessibility/AccessibilityRenderObject.h:
2190         (AccessibilityRenderObject):
2191         * accessibility/AccessibilityScrollView.cpp:
2192         (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
2193         (WebCore):
2194         (WebCore::AccessibilityScrollView::detach):
2195         (WebCore::AccessibilityScrollView::isAttachment):
2196         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
2197         (WebCore::AccessibilityScrollView::updateScrollbars):
2198         (WebCore::AccessibilityScrollView::webAreaObject):
2199         (WebCore::AccessibilityScrollView::elementRect):
2200         (WebCore::AccessibilityScrollView::documentFrameView):
2201         (WebCore::AccessibilityScrollView::parentObject):
2202         (WebCore::AccessibilityScrollView::parentObjectIfExists):
2203         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
2204         (WebCore::AccessibilityScrollView::scrollTo):
2205         * accessibility/AccessibilityScrollView.h:
2206         (WebCore::AccessibilityScrollView::scrollView):
2207         (AccessibilityScrollView):
2208         * accessibility/AccessibilityTable.cpp:
2209         (WebCore::AccessibilityTable::isDataTable):
2210         * accessibility/chromium/AXObjectCacheChromium.cpp:
2211         (WebCore::AXObjectCache::postPlatformNotification):
2212         * dom/Element.cpp:
2213         (WebCore::Element::attributeChanged):
2214         * rendering/RenderBlock.cpp:
2215         (WebCore::RenderBlock::deleteLineBoxTree):
2216         (WebCore::RenderBlock::createAndAppendRootInlineBox):
2217         * rendering/RenderObject.cpp:
2218         (WebCore::RenderObject::styleWillChange):
2219         * rendering/RenderText.cpp:
2220         (WebCore::RenderText::setText):
2221
2222 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
2223
2224         Conditionalize XHR timeout support
2225         https://bugs.webkit.org/show_bug.cgi?id=100356
2226
2227         Reviewed by Adam Barth.
2228
2229         Adding feature for XHR_TIMEOUT to disable it on ports that don't have
2230         network backend support for setTimeoutInterval.
2231
2232         No new tests, covered by http/tests/xmlhttprequest/timeout/*
2233
2234         * Configurations/FeatureDefines.xcconfig: Default ON on mac.
2235         * GNUmakefile.am:
2236         * GNUmakefile.features.am:
2237           Autotools support for the flag.
2238         * xml/XMLHttpRequest.cpp: #if ENABLE(XHR_TIMEOUT) wrapping
2239         (WebCore::XMLHttpRequest::XMLHttpRequest):
2240         (WebCore):
2241         (WebCore::XMLHttpRequest::open):
2242         (WebCore::XMLHttpRequest::createRequest):
2243         (WebCore::XMLHttpRequest::didFail):
2244         * xml/XMLHttpRequest.h: #if ENABLE(XHR_TIMEOUT) wrapping
2245         (XMLHttpRequest):
2246         * xml/XMLHttpRequest.idl: Conditional properties timeout and ontimeout (event handler).
2247
2248 2012-10-25  Tom Sepez  <tsepez@chromium.org>
2249
2250         XSSAuditor must replace form action with about:blank when reflected action detected.
2251         https://bugs.webkit.org/show_bug.cgi?id=100280
2252
2253         Reviewed by Daniel Bates.
2254
2255         Changes empty string form-action replacement to about:blank.
2256         Existing form-action.html test modified to check this case.
2257         
2258         * html/parser/XSSAuditor.cpp:
2259         (WebCore::XSSAuditor::filterFormToken):
2260
2261 2012-10-25  Kevin Ellis  <kevers@chromium.org>
2262
2263         Touch adjustment snaps to wrong target at a plugin boundary.
2264         https://bugs.webkit.org/show_bug.cgi?id=99938
2265
2266         Reviewed by Antonio Gomes.
2267
2268         Inidcate that an <embed> element can respond to
2269         mouse click events, since mouse events are forwarded
2270         to the plugin.  Fixes touch adjustment at a plugin
2271         boundary.  Prior to the patch a clickable element 
2272         adjacent to the plugin would capture synthetic mouse
2273         events from tap gestures that spanned the plugin
2274         boundary.
2275
2276         Test: touchadjustment/plugin.html
2277
2278         * html/HTMLEmbedElement.cpp:
2279         (WebCore::HTMLEmbedElement::willRespondToMouseClickEvents):
2280         (WebCore):
2281         * html/HTMLEmbedElement.h:
2282
2283 2012-10-25  Ojan Vafai  <ojan@chromium.org>
2284
2285         Get rid of ScriptController::clearForNavigation
2286         https://bugs.webkit.org/show_bug.cgi?id=100390
2287
2288         Reviewed by Adam Barth.
2289
2290         Get rid of clearForNavigation and change resetIsolatedWorlds
2291         to reset so that it can also do the hintForCollectGarbage call.
2292         No new tests. No behavior change.
2293
2294         * bindings/v8/ScriptController.cpp:
2295         (WebCore::ScriptController::reset):
2296         (WebCore::ScriptController::clearForClose):
2297         (WebCore::ScriptController::clearWindowShell):
2298         * bindings/v8/ScriptController.h:
2299         (ScriptController):
2300
2301 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
2302
2303         r132427 changed the tiling behavior of tiled layer TileCaches as well as the page tile cache
2304         https://bugs.webkit.org/show_bug.cgi?id=100323
2305
2306         Reviewed by Anders Carlsson.
2307
2308         r132427 assumed that TileCaches were only used for the page, and changed the tile
2309         size behavior of all non-page TileCaches.
2310         
2311         Fix by giving TiledBacking a new 'CoverageForSlowScrolling' flag which
2312         affects the tile size behavior.
2313         
2314         Consolidated the two places that set TileCoverage into one, and in the process
2315         reduced FrameView's direct communication with TiledBacking.
2316
2317         No new tests because we can't test tile size via tests.
2318
2319         * page/FrameView.cpp:
2320         (WebCore::FrameView::didMoveOnscreen): Rely on RenderLayerCompositor to
2321         call setIsInWindow() on the main page tile cache.
2322         (WebCore::FrameView::willMoveOffscreen): Ditto.
2323         (WebCore::FrameView::performPostLayoutTasks): Rather than explicitly tell
2324         the TiledBacking that it should do stuff, just tell the compositor that
2325         layout happened.
2326         * platform/graphics/TiledBacking.h: New CoverageForSlowScrolling flag.
2327         * platform/graphics/ca/mac/TileCache.mm:
2328         (WebCore::TileCache::tileSizeForCoverageRect): Only use one big tile
2329         if the CoverageForSlowScrolling flag is set.
2330         * rendering/RenderLayerBacking.cpp:
2331         (WebCore::RenderLayerBacking::RenderLayerBacking): layer->isRootLayer()
2332         is equivalent to renderer()->isRenderView() and clearer.
2333         (WebCore::RenderLayerBacking::tiledBacking): Call adjustTileCacheCoverage().
2334         It would be nice to move the rest of this TiledBacking code from here somehow.
2335         (WebCore::RenderLayerBacking::adjustTileCacheCoverage): Update the TileCoverage
2336         flags, taking into account horizontal and vertical scrollability independently,
2337         and whether we're in slow scrolling mode.
2338         * rendering/RenderLayerBacking.h:
2339         (RenderLayerBacking):
2340         * rendering/RenderLayerCompositor.cpp:
2341         (WebCore::RenderLayerCompositor::frameViewDidLayout): Have the page
2342         tiled backing update it's coverage flags.
2343         (WebCore::RenderLayerCompositor::pageTiledBacking): Utility function.
2344         (WebCore::RenderLayerCompositor::didMoveOnscreen): Moved from FrameView.
2345         (WebCore::RenderLayerCompositor::willMoveOffscreen): Ditto.
2346         * rendering/RenderLayerCompositor.h:
2347         (RenderLayerCompositor):
2348
2349 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
2350
2351         Everything that sets RenderObject::m_style should go through setStyleInternal
2352         https://bugs.webkit.org/show_bug.cgi?id=100338
2353
2354         Reviewed by Ojan Vafai.
2355
2356         Whenever we set m_style in RenderObject go through setStyleInternal and make
2357         it inline. This gives a common place to put printfs and makes the code cleaner.
2358
2359         No new tests, just a refactor.
2360
2361         * rendering/RenderObject.cpp:
2362         (WebCore::RenderObject::createObject):
2363         (WebCore::RenderObject::setStyle):
2364         * rendering/RenderObject.h:
2365         (WebCore::RenderObject::setStyleInternal):
2366
2367 2012-10-25  Brady Eidson  <beidson@apple.com>
2368
2369         Allow LoaderStrategy to override the ResourceLoadScheduler
2370         https://bugs.webkit.org/show_bug.cgi?id=100355
2371
2372         Reviewed by Anders Carlsson.
2373
2374         Allow LoaderStrategy to override the implementation of the ResourceLoadScheduler.
2375         Add a default implementation that just returns the current ResourceLoadScheduler.
2376
2377         No new tests (No behavior change).
2378
2379         Project file stuff:
2380         * CMakeLists.txt:
2381         * GNUmakefile.list.am:
2382         * Target.pri:
2383         * WebCore.exp.in:
2384         * WebCore.gypi:
2385         * WebCore.vcproj/WebCore.vcproj:
2386         * WebCore.xcodeproj/project.pbxproj:
2387
2388         "Virtualize" ResourceLoadScheduler to expose build issues in preparation for future virtualization:
2389         * loader/ResourceLoadScheduler.cpp:
2390         (WebCore::ResourceLoadScheduler::~ResourceLoadScheduler):
2391         * loader/ResourceLoadScheduler.h:
2392         (ResourceLoadScheduler):
2393
2394         Add the new method plus a default implementation:
2395          * loader/LoaderStrategy.cpp: 
2396         (WebCore::LoaderStrategy::resourceLoadScheduler):
2397         * loader/LoaderStrategy.h:
2398
2399         When strategies are enabled, use the LoaderStrategy for this:
2400         * dom/ContainerNode.cpp:
2401         (WebCore::ContainerNode::suspendPostAttachCallbacks):
2402         (WebCore::ContainerNode::resumePostAttachCallbacks):
2403
2404         * loader/MainResourceLoader.cpp:
2405         (WebCore::MainResourceLoader::loadNow):
2406
2407         * loader/ResourceLoader.cpp:
2408         (WebCore::ResourceLoader::releaseResources):
2409         (WebCore::ResourceLoader::willSendRequest):
2410
2411         * loader/cache/CachedResource.cpp:
2412         (WebCore::CachedResource::load):
2413
2414         * loader/cache/CachedResourceLoader.cpp:
2415         (WebCore::CachedResourceLoader::performPostLoadActions):
2416
2417 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
2418
2419         Web Inspector: inspector tests failing after r132454
2420         https://bugs.webkit.org/show_bug.cgi?id=100381
2421
2422         Reviewed by Pavel Feldman.
2423
2424         Added implementation for DOMNodeWrapperMap::reportMemoryUsage method,
2425         otherwise no actual pointer is reported which breaks instrumentation.
2426
2427         * bindings/v8/IntrusiveDOMWrapperMap.h:
2428
2429 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
2430
2431         Init timeout flag in ResourceErrorCF
2432         https://bugs.webkit.org/show_bug.cgi?id=100349
2433
2434         Reviewed by Alexey Proskuryakov.
2435
2436         Initialize the timeout property to true if the network error was a timeout error.
2437         This is a speculative fix for the XHR timeout test cases failing on Apple Win -
2438         I can't verify this on a local machine.
2439
2440         No new tests, covered by
2441         LayoutTests/http/tests/xmlhttprequest/timeout/*
2442
2443         * platform/network/cf/ResourceErrorCF.cpp:
2444         (WebCore::ResourceError::ResourceError): Init m_timeout from error code.
2445
2446 2012-10-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2447
2448         'resolution' MQ: Printing should use use high resolution images when available
2449         https://bugs.webkit.org/show_bug.cgi?id=100382
2450
2451         Reviewed by Antti Koivisto.
2452
2453         Special case print to not use the dpi of the screen, but one of 300.
2454
2455         Updated the resolution media query test to cover this.
2456
2457         * css/MediaQueryEvaluator.cpp:
2458         (WebCore::resolutionMediaFeatureEval): Update compared decimal points
2459         to three, due to 300 / 96 being equal to 3.125.
2460
2461 2012-10-25  Kinuko Yasuda  <kinuko@chromium.org>
2462
2463         [chromium] External FileSystem should use the root path returned by requestFileSystem
2464         https://bugs.webkit.org/show_bug.cgi?id=100372
2465
2466         Reviewed by Kentaro Hara.
2467
2468         External FileSystem should use the root path returned by
2469         requestFileSystem as other type is doing. Current implementation
2470         completely ignore the returned path.
2471
2472         New tests are to be added in chromium (as the type is only available in chromeos and chrome extensions)
2473
2474         * Modules/filesystem/chromium/DOMFileSystemChromium.cpp:
2475         (WebCore::DOMFileSystemBase::createFileSystemURL):
2476
2477 2012-10-25  Kevin Ellis  <kevers@chromium.org>
2478
2479         Can't easily position the cursor on an empty line in a textarea with touch if touch adjustment is enabled
2480         https://bugs.webkit.org/show_bug.cgi?id=97576
2481
2482         Reviewed by Antonio Gomes.
2483
2484         Consolidate touch adjustment candidates that are
2485         editable.  Adjustment becomes coarse being based
2486         on the bounds of the outermost editable element.
2487         This fix allows tap positioning of the text caret
2488         on a blank line immediately above or below another
2489         element.
2490
2491         Test: touchadjustment/editable-content.html
2492
2493         * page/TouchAdjustment.cpp:
2494         (WebCore::TouchAdjustment::compileSubtargetList):
2495         (WebCore::TouchAdjustment::hybridDistanceFunction):
2496
2497 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
2498
2499         Memory instrumentation: add reportMemoryUsage to ImageObserver interface
2500         https://bugs.webkit.org/show_bug.cgi?id=100091
2501
2502         Reviewed by Pavel Feldman.
2503
2504         Added reportMemoryUsage method to ImageObserver to make sure it is reported as
2505         appropriate descendant(with pointer adjusted due to offsets added by inheritance)
2506         rather than as a standalone memory block.
2507
2508         * platform/graphics/ImageObserver.h:
2509         (ImageObserver):
2510
2511 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
2512
2513         Web Inspector: [Overrides] Add latitude and longitude labels for the geolocation fields
2514         https://bugs.webkit.org/show_bug.cgi?id=100375
2515
2516         Reviewed by Yury Semikhatsky.
2517
2518         No new tests, a UI change.
2519
2520         * English.lproj/localizedStrings.js:
2521         * inspector/front-end/SettingsScreen.js:
2522         (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
2523
2524 2012-10-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2525
2526         Add setMediaTypeOverride to window.internals.settings
2527         https://bugs.webkit.org/show_bug.cgi?id=100249
2528
2529         Reviewed by Kenneth Rohde Christiansen.
2530
2531         Added setMediaTypeOverride to window.internals.settings.
2532
2533         Test: fast/media/print-restores-previous-mediatype.html
2534
2535         * WebCore.exp.in: Exported WebCore::Settings::setMediaTypeOverride(WTF::String const&) for MAC.
2536         * page/Settings.cpp:
2537         (WebCore::Settings::Settings):
2538         (WebCore::Settings::setMediaTypeOverride):
2539         (WebCore):
2540         * page/Settings.h:
2541         (Settings):
2542         (WebCore::Settings::mediaTypeOverride):
2543         * testing/InternalSettings.cpp:
2544         (WebCore::InternalSettings::Backup::Backup):
2545         (WebCore::InternalSettings::Backup::restoreTo):
2546         (WebCore::InternalSettings::setMediaTypeOverride):
2547         (WebCore):
2548         * testing/InternalSettings.h:
2549         (Backup):
2550         (InternalSettings):
2551         * testing/InternalSettings.idl:
2552
2553 2012-10-22  Mikhail Naganov  <mnaganov@chromium.org>
2554
2555         [Chromium] Add supportMultipleWindows setting, needed for Android
2556         https://bugs.webkit.org/show_bug.cgi?id=99716
2557
2558         Reviewed by Adam Barth.
2559
2560         Add supportMultipleWindows settings for reusing the same view when
2561         opening popups. This is required for emulating the behavior of
2562         Android WebView. Adding into WebCore, as other ports might want to
2563         use this setting in the future.
2564
2565         Tests: fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
2566                fast/dom/Window/window-open-no-multiple-windows.html
2567                fast/forms/post-popup-no-multiple-windows.html
2568
2569         * loader/FrameLoader.cpp:
2570         (WebCore::createWindow):
2571         * page/ContextMenuController.cpp:
2572         (WebCore::openNewWindow):
2573         * page/Settings.cpp:
2574         (WebCore::Settings::Settings):
2575         (WebCore::Settings::setSupportsMultipleWindows):
2576         (WebCore):
2577         * page/Settings.h:
2578         (Settings):
2579         (WebCore::Settings::supportsMultipleWindows):
2580
2581 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
2582
2583         Unreviewed, fix Web Inspector frontend compilability
2584
2585         * inspector/front-end/ElementsTreeOutline.js:
2586         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
2587         * inspector/front-end/StylesSidebarPane.js:
2588         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
2589         (WebInspector.StylePropertyTreeElement.prototype):
2590
2591 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
2592
2593         Web Inspector: Drag and drop property value from Inspector is not working as expected
2594         https://bugs.webkit.org/show_bug.cgi?id=100040
2595
2596         Reviewed by Vsevolod Vlasov.
2597
2598         Do not start a custom drag for a tree element if there is a non-collapsed selection in the Inspector.
2599
2600         * inspector/front-end/ElementsTreeOutline.js:
2601         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
2602
2603 2012-10-25  Ilya Tikhonovsky  <loislo@chromium.org>
2604
2605         Web Inspector: NMI instrument InspectorDebuggerAgent. It uses a lot of memory on heavy js sites because it keeps all the scripts in a map.
2606         https://bugs.webkit.org/show_bug.cgi?id=100340
2607
2608         Reviewed by Yury Semikhatsky.
2609
2610         * dom/WebCoreMemoryInstrumentation.cpp:
2611         (WebCore):
2612         * dom/WebCoreMemoryInstrumentation.h:
2613         (WebCoreMemoryTypes):
2614         * inspector/InspectorDebuggerAgent.cpp:
2615         (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
2616         (WebCore):
2617         (WebCore::ScriptDebugListener::Script::reportMemoryUsage):
2618         * inspector/InspectorDebuggerAgent.h:
2619         (InspectorDebuggerAgent):
2620         * inspector/ScriptDebugListener.h:
2621         (Script):
2622
2623 2012-10-25  Adam Barth  <abarth@webkit.org>
2624
2625         [V8] We can handle ActiveDOMNodes and DOMNodes in the same GC visitor
2626         https://bugs.webkit.org/show_bug.cgi?id=100351
2627
2628         Reviewed by Eric Seidel.
2629
2630         There is no reason to handle active DOM nodes in a separate pass from
2631         regular DOM nodes anymore.
2632
2633         * bindings/v8/V8DOMMap.cpp:
2634         * bindings/v8/V8DOMMap.h:
2635         (WebCore):
2636         * bindings/v8/V8GCController.cpp:
2637         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
2638         (WebCore::NodeVisitor::NodeVisitor):
2639         (NodeVisitor):
2640         (WebCore::NodeVisitor::visitNodeWrapper):
2641         (WebCore::V8GCController::majorGCPrologue):
2642
2643 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
2644
2645         Web Inspector: Improper out-of-order call on a rule that is being removed from the stylesheet.
2646         https://bugs.webkit.org/show_bug.cgi?id=100357
2647
2648         Reviewed by Vsevolod Vlasov.
2649
2650         * inspector/InspectorStyleSheet.cpp:
2651         (WebCore::InspectorStyleSheet::deleteRule):
2652
2653 2012-10-25  Adam Barth  <abarth@webkit.org>
2654
2655         [V8] DOMDataStoreHandle serves no purpose and can be removed
2656         https://bugs.webkit.org/show_bug.cgi?id=100333
2657
2658         Reviewed by Eric Seidel.
2659
2660         After https://bugs.webkit.org/show_bug.cgi?id=100316,
2661         DOMDataStoreHandle is just a glorified OwnPtr.
2662
2663         * bindings/v8/DOMWrapperWorld.h:
2664         (WebCore::DOMWrapperWorld::domDataStore):
2665         (DOMWrapperWorld):
2666         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
2667         * bindings/v8/V8DOMMap.cpp:
2668         * bindings/v8/V8DOMMap.h:
2669
2670 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
2671
2672         Remove dead Node::isBlockFlowOrBlockTable
2673         https://bugs.webkit.org/show_bug.cgi?id=100336
2674
2675         Reviewed by Eric Seidel.
2676
2677         Nothing uses Node::isBlockFlowOrBlockTable anymore so remove it.
2678
2679         No new tests needed, just removing dead code.
2680
2681         * dom/Node.cpp:
2682         * dom/Node.h:
2683         (Node):
2684
2685 2012-10-25  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2686
2687         Web Inspector: Fix "check-inspector-strings" script and fix localized strings.
2688         https://bugs.webkit.org/show_bug.cgi?id=100090
2689
2690         Reviewed by Vsevolod Vlasov.
2691
2692         Fixed localized strings table.
2693
2694         * English.lproj/localizedStrings.js: Added missing, removed orhans.
2695         * inspector/front-end/CSSNamedFlowView.js: Removed tailing whitespaces.
2696         * inspector/front-end/NativeMemorySnapshotView.js:
2697         Removed double localization.
2698
2699 2012-10-25  Adam Barth  <abarth@webkit.org>
2700
2701         [V8] We can merge DOMDataStore, ScopedDOMDataStore, and StaticDOMDataStore into one class
2702         https://bugs.webkit.org/show_bug.cgi?id=100316
2703
2704         Reviewed by Eric Seidel.
2705
2706         Prior to this patch, DOMDataStore had two subclasses,
2707         ScopedDOMDataStore and StaticDOMDataStore, which used slighly different
2708         wrapper map base classes and had different lifetimes. This patch
2709         unifies all these classes into DOMDataStore itself. This makes this
2710         code much more straightforward.
2711
2712         * WebCore.gypi:
2713         * bindings/v8/DOMDataStore.cpp:
2714         (WebCore::DOMDataStore::DOMDataStore):
2715         (WebCore::DOMDataStore::~DOMDataStore):
2716         (WebCore::DOMDataStore::current):
2717         (WebCore::DOMDataStore::reportMemoryUsage):
2718         * bindings/v8/DOMDataStore.h:
2719         (DOMDataStore):
2720         (WebCore::DOMDataStore::domNodeMap):
2721         (WebCore::DOMDataStore::activeDomNodeMap):
2722         (WebCore::DOMDataStore::domObjectMap):
2723         (WebCore::DOMDataStore::activeDomObjectMap):
2724         * bindings/v8/ScopedDOMDataStore.cpp: Removed.
2725         * bindings/v8/ScopedDOMDataStore.h: Removed.
2726         * bindings/v8/SerializedScriptValue.cpp:
2727         (WebCore::neuterBinding):
2728         * bindings/v8/StaticDOMDataStore.cpp: Removed.
2729         * bindings/v8/StaticDOMDataStore.h: Removed.
2730         * bindings/v8/V8DOMMap.cpp:
2731         (WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
2732         (WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
2733         (WebCore::visitActiveDOMNodes):
2734         (WebCore::visitDOMObjects):
2735         (WebCore::visitActiveDOMObjects):
2736         * bindings/v8/V8DOMMap.h:
2737         (WebCore):
2738         * bindings/v8/V8PerIsolateData.h:
2739         (V8PerIsolateData):
2740         * bindings/v8/WorkerScriptController.cpp:
2741         (WebCore::WorkerScriptController::WorkerScriptController):
2742         (WebCore::WorkerScriptController::~WorkerScriptController):
2743         * bindings/v8/WorkerScriptController.h:
2744         (WorkerScriptController):
2745
2746 2012-10-24  Kent Tamura  <tkent@chromium.org>
2747
2748         Minimize CSS rulesets for multiple-fields input
2749         https://bugs.webkit.org/show_bug.cgi?id=100198
2750
2751         Reviewed by Kentaro Hara.
2752
2753         - Unify rulesets for input::-webkit-datetime-edit-*-field.
2754          input::-webkit-datetime-edit-*-field had identical ruleset.
2755
2756         - Move some rulesets near to related rulesets.
2757          Move -webkit-datetime-edit-*-field:focus nearby the new unified ruleset.
2758          Move input::-webkit-datetime-edit-second-field[readonly] nearby
2759         input::-webkit-datetime-edit-minute-field[readonly].
2760
2761         No new tests. This shouldn't make any behavior change.
2762
2763         * css/html.css:
2764         (input::-webkit-datetime-edit-year-field):
2765         (input::-webkit-datetime-edit-year-field:focus):
2766         (input::-webkit-datetime-edit-second-field[readonly]):
2767
2768 2012-10-24  Kent Tamura  <tkent@chromium.org>
2769
2770         REGRESSION(r132291): Crash in BaseMultipleFieldsDateAndTimeInputType
2771         https://bugs.webkit.org/show_bug.cgi?id=100326
2772
2773         Reviewed by Eric Seidel.
2774
2775         Test: fast/forms/time-multiple-fields/time-multiple-fields-change-type.html
2776
2777         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2778         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
2779         We need to disconnect m_spinButtonElement before destructing the UA shadow tree.
2780
2781 2012-10-24  Adam Barth  <abarth@webkit.org>
2782
2783         [V8] DOMData is no longer needed
2784         https://bugs.webkit.org/show_bug.cgi?id=100313
2785
2786         Reviewed by Eric Seidel.
2787
2788         This class serves no purpose anymore and can be deleted.
2789
2790         * WebCore.gypi:
2791         * bindings/v8/DOMData.cpp: Removed.
2792         * bindings/v8/DOMData.h: Removed.
2793         * bindings/v8/DOMDataStore.cpp:
2794         (WebCore::DOMDataStore::current):
2795         * bindings/v8/DOMDataStore.h:
2796         (WebCore):
2797         (DOMDataStore):
2798         * bindings/v8/SerializedScriptValue.cpp:
2799         (WebCore::neuterBinding):
2800         * bindings/v8/V8DOMMap.cpp:
2801         (WebCore::getDOMNodeMap):
2802         (WebCore::getActiveDOMNodeMap):
2803         (WebCore::getDOMObjectMap):
2804         (WebCore::getActiveDOMObjectMap):
2805         (WebCore::removeAllDOMObjects):
2806         (WebCore::visitActiveDOMNodes):
2807         (WebCore::visitDOMObjects):
2808         (WebCore::visitActiveDOMObjects):
2809
2810 2012-10-24  Kent Tamura  <tkent@chromium.org>
2811
2812         Sort an Xcode project file.
2813
2814         * WebCore.xcodeproj/project.pbxproj: Sorted.
2815
2816 2012-10-24  Adam Barth  <abarth@webkit.org>
2817
2818         [V8] AbstractWeakReferenceMap is unnecessarily general and complex
2819         https://bugs.webkit.org/show_bug.cgi?id=100175
2820
2821         Reviewed by Eric Seidel.
2822
2823         Before this patch, AbstractWeakReferenceMap served two masters:
2824
2825         1) DOM wrappers
2826         2) NPV8 function templates
2827
2828         These two uses cases pushed AbstractWeakReferenceMap to be more general
2829         and complex that needed. This patch separates these two uses cases into
2830         two separate classes. V8NPTemplateMap is all of 40 lines of code. It's
2831         not worth complicating the DOM wrapper code path to share that tiny
2832         amount of code.
2833
2834         The other thing this patch does is store a pointer to the DOM wrapper
2835         map as the weak callback context object. That means we no longer need
2836         to search through all the wrapper maps in order to find the map that
2837         contains this particular DOM wrapper.
2838
2839         * WebCore.gypi:
2840         * bindings/v8/DOMData.cpp:
2841         * bindings/v8/DOMData.h:
2842         (DOMData):
2843         * bindings/v8/DOMDataStore.cpp:
2844             - Delete all these complicated weak callback functions. The weak
2845               callback functions are now an order of magnitude simpler and
2846               declared as private member functions on the wrapper map.
2847         * bindings/v8/DOMDataStore.h:
2848         (WebCore::DOMDataStore::domNodeMap):
2849         (WebCore::DOMDataStore::activeDomNodeMap):
2850         (DOMDataStore):
2851             - We now have a consistent type to use for all these wrapper maps.
2852               Both the hash map and the intrusive map derive from
2853               DOMWrapperMap (with a single template parameter).
2854         * bindings/v8/DOMWrapperMap.h: Added.
2855         (WebCore):
2856         (DOMWrapperVisitor):
2857             - The visitor is no longer an inner class. It's just a top-level
2858               class that does the same thing.
2859         (DOMWrapperMap):
2860             - The abstract interface for DOMWrapperMap has about half as many
2861               functions as the old AbstractWeakReferenceMap because the two use
2862               cases are disentangled.
2863         (WebCore::DOMWrapperMap::~DOMWrapperMap):
2864         (DOMWrapperHashMap):
2865             - This is a concrete instance of DOMWrapperMap that uses a hash map.
2866         (WebCore::DOMWrapperHashMap::DOMWrapperHashMap):
2867         (WebCore::DOMWrapperHashMap::remove):
2868         (WebCore::DOMWrapperHashMap::defaultWeakCallback):
2869             - Notice that the context parameter now points to the hashmap
2870               itself rather than to the native object. Now that we don't need
2871               to handle the NPAPI case, we can recover the native object from
2872               the wrapper using toNative. The assert in set() ensures that this
2873               always works.
2874         * bindings/v8/DOMWrapperWorld.h:
2875         * bindings/v8/IntrusiveDOMWrapperMap.h:
2876             - These classes are now simplified because they need to implement
2877               fewer functions.
2878         (WebCore::DOMNodeWrapperMap::weakCallback):
2879             - For this weak callback, we still use the native object as the
2880               context parameter. We could also recover the native object from
2881               the wrapper, which means this context parameter is available to
2882               do other work.
2883         * bindings/v8/ScopedDOMDataStore.cpp:
2884         (WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
2885             - This code no longer needs to have knowledge of which weak
2886               callbacks these objects use.
2887         (WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
2888             - We need to clear the maps before deleting them because there are
2889               still JavaScript objects that have references to the map in their
2890               weak callback parameter. Previously, we handled this case because
2891               we would search all the wrapper maps and fail to find the wrapper.
2892         * bindings/v8/ScriptProfiler.cpp:
2893         (WebCore::ScriptProfiler::visitExternalArrays):
2894         * bindings/v8/StaticDOMDataStore.cpp:
2895             - This code no longer needs to have knowledge of which weak
2896               callback these maps use.
2897         * bindings/v8/StaticDOMDataStore.h:
2898         (StaticDOMDataStore):
2899         * bindings/v8/V8DOMMap.cpp:
2900         (WebCore::getDOMNodeMap):
2901         (WebCore::getActiveDOMNodeMap):
2902         (WebCore::removeAllDOMObjects):
2903             - Rather than using some complicated visitor pattern, we can now
2904               just call clear() directly on the maps to remove all the objects.
2905         (WebCore::visitActiveDOMNodes):
2906         (WebCore::visitDOMObjects):
2907         (WebCore::visitActiveDOMObjects):
2908         * bindings/v8/V8DOMMap.h:
2909         (WebCore):
2910             - Delete the old versions of these classes.
2911         (DOMDataStoreHandle):
2912             - Style nit: one-argument constructors should be marked explicit.
2913         * bindings/v8/V8DOMWrapper.cpp:
2914         (WebCore::V8DOMWrapper::domWrapperType):
2915             - I moved this logic into WrapperTypeInfo.h to avoid a circular
2916               header dependency.
2917         * bindings/v8/V8DOMWrapper.h:
2918         (WebCore::V8DOMWrapper::getCachedWrapper):
2919         * bindings/v8/V8GCController.cpp:
2920             - EnsureWeakDOMNodeVisitor is no longer used (or needed since we no
2921               longer clear the weak callbacks in V8GCController).
2922         * bindings/v8/V8NPObject.cpp:
2923         (V8NPTemplateMap):
2924             - staticTemplateMap is no longer an instance of WeakReferenceMap.
2925               Instead, this patch just implements the functionality we need
2926               here directly.
2927         (WebCore::V8NPTemplateMap::get):
2928         (WebCore::V8NPTemplateMap::set):
2929         (WebCore::V8NPTemplateMap::sharedInstance):
2930         (WebCore::V8NPTemplateMap::weakCallback):
2931         (WebCore::V8NPTemplateMap::dispose):
2932         (WebCore::npObjectGetProperty):
2933         (WebCore):
2934         (WebCore::staticNPObjectMap):
2935         (WebCore::weakNPObjectCallback):
2936             - DOMWrapperMap no longer exposes a "forget" function. Instead, we
2937               just use the more basic "remove" and "Dispose" operations to do
2938               the same thing. This is possible now because we no longer have
2939               "removeIfPossible" to support searching all the wrapper maps for
2940               the one that has the right wrapper.
2941         (WebCore::createV8ObjectForNPObject):
2942             - DOMWrapperMap No longer has a "contains" function. Instead, we
2943               use get, which actually makes this code more efficient because we
2944               only do one hash map lookup.
2945         (WebCore::forgetV8ObjectForNPObject):
2946             - The changes here are a combination of the two sorts of changes
2947               above.
2948         * bindings/v8/WrapperTypeInfo.h:
2949         (WebCore::toNative):
2950         (WebCore::toWrapperTypeInfo):
2951             - The patch moves these functions into this header to avoid a
2952               circular header dependency.
2953
2954 2012-10-24  Arnaud Renevier  <a.renevier@sisa.samsung.com>
2955
2956         [cairo] unneeded FloatRect object creation in BitmapImage::draw
2957         https://bugs.webkit.org/show_bug.cgi?id=100298
2958
2959         Reviewed by Martin Robinson.
2960
2961         Do not copy FloatRect arguments src and dst to local variables.
2962         Instead, use src and dst directly.
2963
2964         No new tests. No change in behavior.
2965
2966         * platform/graphics/cairo/BitmapImageCairo.cpp:
2967         (WebCore::BitmapImage::draw):
2968
2969 2012-10-24  Seokju Kwon  <seokju.kwon@samsung.com>
2970
2971         [SOUP] Provide logging for SocketStreamHandleSoup
2972         https://bugs.webkit.org/show_bug.cgi?id=100215
2973
2974         Reviewed by Alexey Proskuryakov.
2975
2976         Add logging to SocketStreamHandleSoup to facilitate debugging.
2977
2978         * platform/network/soup/SocketStreamHandleSoup.cpp:
2979         (WebCore::SocketStreamHandle::SocketStreamHandle):
2980         (WebCore::SocketStreamHandle::~SocketStreamHandle):
2981         (WebCore::SocketStreamHandle::platformSend):
2982         (WebCore::SocketStreamHandle::platformClose):
2983
2984 2012-10-24  Nico Weber  <thakis@chromium.org>
2985
2986         Pass on exif orientation from ImageSource when using the open-source image decoders
2987         https://bugs.webkit.org/show_bug.cgi?id=100164
2988
2989         Reviewed by Eric Seidel.
2990
2991         The orientation is honored always for image documents, and optionally
2992         for <img> elements if shouldRespectImageOrientation is set (off by
2993         default). However, the feature needs port-specific modifications to
2994         GraphicsContext (without this, webcore will use the rotated bounds but
2995         draw the image as if it hadn't be rotated, resulting in squished
2996         pixels), and most ports don't implement these yet -- so put
2997         turning this on for image documents behind a port-specific #ifdef.
2998
2999         No observable behavior change. Once it's hooked up, it will be tested
3000         by fast/images/exif-orientation.html.
3001
3002         * platform/graphics/ImageSource.cpp:
3003         (WebCore::ImageSource::size):
3004         (WebCore::ImageSource::frameSizeAtIndex):
3005         (WebCore::ImageSource::orientationAtIndex):
3006         * platform/graphics/chromium/DeferredImageDecoder.cpp:
3007         (WebCore::DeferredImageDecoder::orientation):
3008         (WebCore):
3009         * platform/graphics/chromium/DeferredImageDecoder.h:
3010         (DeferredImageDecoder):
3011         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
3012         (WebCore::readImageOrientation):
3013         * rendering/RenderObject.cpp:
3014         (WebCore::RenderObject::shouldRespectImageOrientation):
3015
3016 2012-10-24  Beth Dakin  <bdakin@apple.com>
3017
3018         https://bugs.webkit.org/show_bug.cgi?id=100169
3019         We should make TileCache tiles the size of the tile coverage rect 
3020         when we can't do fast scrolling
3021         -and-
3022         <rdar://problem/12505021>
3023
3024         Reviewed by Simon Fraser.
3025
3026         Some websites that don't do fast scrolling still scroll slower than 
3027         they do with tiled drawing disabled. 
3028         https://bugs.webkit.org/show_bug.cgi?id=99768 addressed some of this 
3029         performance problem, but there is still more ground to make up. This 
3030         patch addresses the remaining issue by making tiles the size of the 
3031         window when we can't do fast scrolling. 
3032
3033         The constructor and create function no longer take a size parameter. 
3034         That's all fully controlled within TileCache now. m_tileSize is no 
3035         longer const.
3036         * platform/graphics/ca/mac/TileCache.h:
3037
3038         Store the current default size as constants so that we can access it 
3039         in both the constructor and adjustTileSizeForCoverageRect().
3040         * platform/graphics/ca/mac/TileCache.mm:
3041         (WebCore::TileCache::TileCache):
3042
3043         This new function will set m_tileSize to the size of the tile 
3044         coverage rect if the tile coverage is limited to the visible area. 
3045         Otherwise, the tiles are set to be the default size.
3046         (WebCore::TileCache::adjustTileSizeForCoverageRect):
3047         
3048         Call adjustTileSizeForCoverageRect().
3049         (WebCore::TileCache::revalidateTiles):
3050
3051         No need to send in a size anymore.
3052         * platform/graphics/ca/mac/WebTileCacheLayer.h:
3053         (WebCore):
3054
3055 2012-10-24  David Barton  <dbarton@mathscribe.com>
3056
3057         MathML tests trigger font cache assertions in debug bots
3058         https://bugs.webkit.org/show_bug.cgi?id=100268
3059
3060         Reviewed by Eric Seidel.
3061
3062         Add a FontCachePurgePreventer to fix this.
3063
3064         Tested by existing tests.
3065
3066         * rendering/mathml/RenderMathMLOperator.cpp:
3067         (WebCore::RenderMathMLOperator::updateFromElement):
3068
3069 2012-10-24  Tim Horton  <timothy_horton@apple.com>
3070
3071         Update main frame scroll position immediately for programmatic scrolls
3072         https://bugs.webkit.org/show_bug.cgi?id=98074
3073
3074         Reviewed by Simon Fraser.
3075
3076         Immediately update the main frame scroll position after a programmatic scroll,
3077         so that performing a scrollBy or scrollTo will be instantly reflected in
3078         all of the scroll offset accessors.
3079
3080         No new tests; this will be tested by many scrolling tests once WebKitTestRunner
3081         can use threaded scrolling.
3082
3083         * page/scrolling/ScrollingCoordinator.cpp:
3084         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
3085
3086 2012-10-24  Mihai Parparita  <mihaip@chromium.org>
3087
3088         [Chromium] Allow pushState and related history APIs to be disabled per context
3089         https://bugs.webkit.org/show_bug.cgi?id=99780
3090
3091         Reviewed by Adam Barth.
3092
3093         Chrome Apps do not support the history API (or navigation in general).
3094         Since pushState is generally feature detected, it's cleanest to disable
3095         it via a V8 per-context feature, so that applications can have the
3096         appropriate fallback behavior (other history APIs are re-mapped to throw
3097         exceptions, since history.back() and the link are not feature detected).
3098
3099         * dom/ContextFeatures.cpp:
3100         (WebCore::ContextFeatures::pushStateEnabled):
3101         (WebCore):
3102         * dom/ContextFeatures.h:
3103         * dom/Document.cpp:
3104         (WebCore::Document::enqueuePopstateEvent):
3105         * page/History.idl:
3106
3107 2012-10-24  Tommy Widenflycht  <tommyw@google.com>
3108
3109         MediaStream API: Make sure all events are dispatched asynchronously
3110         https://bugs.webkit.org/show_bug.cgi?id=100286
3111
3112         Reviewed by Adam Barth.
3113
3114         This is necessary to safeguard against if the UA uses synchronous UA->WebKit calls,
3115         and the web application calls methods on the RTCPeerConnection in the event callbacks.
3116
3117         Test: fast/mediastream/RTCPeerConnection-events.html
3118         Also tested by the chromium webrtc fuzz tests.
3119
3120         * Modules/mediastream/RTCPeerConnection.cpp:
3121         (WebCore::RTCPeerConnection::RTCPeerConnection):
3122         (WebCore::RTCPeerConnection::negotiationNeeded):
3123         (WebCore::RTCPeerConnection::didGenerateIceCandidate):
3124         (WebCore::RTCPeerConnection::didAddRemoteStream):
3125         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
3126         (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
3127         (WebCore::RTCPeerConnection::changeReadyState):
3128         (WebCore::RTCPeerConnection::changeIceState):
3129         (WebCore):
3130         (WebCore::RTCPeerConnection::scheduleDispatchEvent):
3131         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
3132         * Modules/mediastream/RTCPeerConnection.h:
3133         (RTCPeerConnection):
3134
3135 2012-10-24  Mark Pilgrim  <pilgrim@chromium.org>
3136
3137         [Chromium] Remove screen-related functions from PlatformSupport
3138         https://bugs.webkit.org/show_bug.cgi?id=97474
3139
3140         Reviewed by Adam Barth.
3141
3142         Screen-related functions like screenHorizontalDPI that
3143         used to be on PlatformSupport are now accessed through a new
3144         PlatformPageClient attached to Widget in WebCore-land, which is
3145         implemented by ChromeClientImpl in WebKit-land, which proxies
3146         calls to WebWidgetClient, which is actually implemented in
3147         Chromium-land.
3148
3149         * WebCore.gypi:
3150         * platform/Widget.h:
3151         * platform/chromium/PageClientChromium.h: Copied from Source/WebCore/platform/chromium/PlatformWidget.h.
3152         (PageClientChromium):
3153         * platform/chromium/PlatformScreenChromium.cpp:
3154         (WebCore::toPlatformPageClient):
3155         (WebCore):
3156         (WebCore::screenHorizontalDPI):
3157         (WebCore::screenVerticalDPI):
3158         (WebCore::screenDepth):
3159         (WebCore::screenDepthPerComponent):
3160         (WebCore::screenIsMonochrome):
3161         (WebCore::screenRect):
3162         (WebCore::screenAvailableRect):
3163         * platform/chromium/PlatformSupport.h:
3164         (PlatformSupport):
3165
3166 2012-10-24  Adam Barth  <abarth@webkit.org>
3167
3168         [V8] WorkerContextExecutionProxy doesn't need to track events
3169         https://bugs.webkit.org/show_bug.cgi?id=100295
3170
3171         Reviewed by Eric Seidel.
3172
3173         This code was added when this code was originally upstreamed as part of
3174         the Chromium port. There doesn't appear to be any reason why
3175         WorkerContextExecutionProxy needs to keep a Vector of raw event
3176         pointers. Those points are likely to become dangling, making the rest
3177         of what this code does very sketchy.
3178
3179         * bindings/v8/V8WorkerContextEventListener.cpp:
3180         (WebCore::V8WorkerContextEventListener::callListenerFunction):
3181         * bindings/v8/WorkerContextExecutionProxy.cpp:
3182         (WebCore::WorkerContextExecutionProxy::dispose):
3183         * bindings/v8/WorkerContextExecutionProxy.h:
3184         (WebCore::WorkerContextExecutionState::WorkerContextExecutionState):
3185         (WorkerContextExecutionProxy):
3186
3187 2012-10-24  Max Vujovic  <mvujovic@adobe.com>
3188
3189         [CSS Shaders] The mesh should be specified using <column, row> order
3190         https://bugs.webkit.org/show_bug.cgi?id=96285
3191
3192         Reviewed by Dean Jackson.
3193
3194         Change StyleResolver and CSSComputedStyleDeclaration to handle the mesh parameters in
3195         column, row order.
3196
3197         Test: css3/filters/custom/custom-filter-mesh-column-row-order.html
3198
3199         * css/CSSComputedStyleDeclaration.cpp:
3200         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
3201             Append the number of columns before the number of rows in the meshParameters
3202             CSSValueList.
3203         * css/StyleResolver.cpp:
3204         (WebCore::StyleResolver::createCustomFilterOperation):
3205             Store the second mesh parameter in meshRows instead of meshColumns.
3206
3207 2012-10-24  Jae Hyun Park  <jae.park@company100.net>
3208
3209         loaderRunLoop() should use synchronization instead of while loop
3210         https://bugs.webkit.org/show_bug.cgi?id=55402
3211
3212         Reviewed by Alexey Proskuryakov.
3213
3214         Originally, loaderRunLoop() sleeps until a thread has started and set
3215         the loaderRunLoopObject static variable. This patch uses
3216         ThreadCondition to synchronize instead of a while loop.
3217
3218         No new tests (No behavior change).
3219
3220         * platform/network/cf/LoaderRunLoopCF.cpp:
3221         (WebCore::runLoaderThread):
3222         (WebCore::loaderRunLoop):
3223         * platform/network/cf/LoaderRunLoopCF.h:
3224         (WebCore):
3225
3226 2012-10-24  Sailesh Agrawal  <sail@chromium.org>
3227
3228         Incorrect keycodes for numpad /, -, +, .
3229         https://bugs.webkit.org/show_bug.cgi?id=99188
3230
3231         Reviewed by Tony Chang.
3232
3233         In r57951 we switched to mapping keys by character code.
3234         This regressed the numpad keys which no longer match the Windows virtual key codes.
3235         This CL fixes this by never mapping numpad keys by character code.
3236
3237         Test: platform/mac/fast/events/numpad-keycode-mapping.html
3238
3239         * platform/mac/PlatformEventFactoryMac.mm:
3240         (WebCore::windowsKeyCodeForKeyEvent):
3241
3242 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
3243
3244         Null-check the RenderView in ocument::windowScreenDidChange to fix a crash when saving PDFs
3245         https://bugs.webkit.org/show_bug.cgi?id=100141
3246         <rdar://problem/12559147>
3247
3248         Reviewed by Tim Horton.
3249
3250         For PDF documents the RenderView is null, so null-check it to avoid a crash
3251         when saving PDFs.
3252
3253         * dom/Document.cpp:
3254         (WebCore::Document::windowScreenDidChange):
3255
3256 2012-10-24  Terry Anderson  <tdanderson@chromium.org>
3257
3258         Handle two-finger tap gestures in the same way as long-press gestures
3259         https://bugs.webkit.org/show_bug.cgi?id=99947
3260
3261         Reviewed by Adam Barth.
3262
3263         Currently a long-press gesture is used to dispatch a context menu (for platforms 
3264         defining CONTEXT_MENUS) or to select text (for Android). Additionally, for platforms 
3265         defining TOUCH_ADJUSTMENT, gesture target fuzzing is performed on the location and 
3266         touch area of the long-press gesture.
3267
3268         This CL will cause two-finger tap gestures to be handled in the same way as long-press 
3269         gestures. The location and touch area of a two-finger tap gesture will correspond to 
3270         the location and touch area of the first finger down; the location/area of the second 
3271         finger will be ignored.
3272
3273         Test: touchadjustment/touch-links-two-finger-tap.html
3274
3275         * page/EventHandler.cpp:
3276         (WebCore::EventHandler::handleGestureLongPress):
3277         (WebCore):
3278         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
3279         (WebCore::EventHandler::handleGestureTwoFingerTap):
3280         (WebCore::EventHandler::adjustGesturePosition):
3281         * page/EventHandler.h:
3282         (EventHandler):
3283
3284 2012-10-24  Chris Fleizach  <cfleizach@apple.com>
3285
3286         AX:When aria-label is used, the text under an element is still appearing as the AXTitle
3287         https://bugs.webkit.org/show_bug.cgi?id=98167
3288
3289         Reviewed by Beth Dakin.
3290
3291         According to WAI-ARIA text computation, the presence of aria-label and alternative text
3292         should override the visible text within an element.
3293
3294         Test: platform/mac/accessibility/aria-label-overrides-visible-text.html
3295
3296         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
3297         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
3298
3299 2012-10-24  Sheriff Bot  <webkit.review.bot@gmail.com>
3300
3301         Unreviewed, rolling out r132303 and r132312.
3302         http://trac.webkit.org/changeset/132303
3303         http://trac.webkit.org/changeset/132312
3304         https://bugs.webkit.org/show_bug.cgi?id=100287
3305
3306         Triggering crashes on many popular websites (Requested by
3307         leviw|gardening on #webkit).
3308
3309         * css/CSSGrammar.y.in:
3310         * css/CSSParser.cpp:
3311         (WebCore::CSSParser::detectAtToken):
3312         * css/CSSParser.h:
3313         * css/CSSPropertySourceData.h:
3314         * css/RuleSet.cpp:
3315         (WebCore::RuleData::RuleData):
3316         (WebCore::RuleSet::addRule):
3317         (WebCore::RuleSet::addRegionRule):
3318         (WebCore::RuleSet::addRulesFromSheet):
3319         (WebCore::RuleSet::addStyleRule):
3320         * css/RuleSet.h:
3321         (RuleData):
3322         (RuleSet):
3323         * css/StyleResolver.cpp:
3324         (WebCore::makeRuleSet):
3325         (WebCore::StyleResolver::appendAuthorStyleSheets):
3326         (WebCore::StyleResolver::matchScopedAuthorRules):
3327         (WebCore::StyleResolver::locateSharedStyle):
3328         * css/StyleResolver.h:
3329         (StyleResolver):
3330         * css/StyleRule.cpp:
3331         (WebCore::StyleRuleBase::reportMemoryUsage):
3332         (WebCore::StyleRuleBase::destroy):
3333         (WebCore::StyleRuleBase::copy):
3334         (WebCore::StyleRuleBase::createCSSOMWrapper):
3335         * css/StyleRule.h:
3336         * css/StyleScopeResolver.cpp:
3337         (WebCore::StyleScopeResolver::reportMemoryUsage):
3338         * css/StyleScopeResolver.h:
3339         (WebCore):
3340         (StyleScopeResolver):
3341         * css/StyleSheetContents.cpp:
3342         (WebCore::childRulesHaveFailedOrCanceledSubresources):
3343
3344 2012-10-24  Joshua Bell  <jsbell@chromium.org>
3345
3346         IndexedDB: Cursor property value identities should be preserved
3347         https://bugs.webkit.org/show_bug.cgi?id=100051
3348
3349         Reviewed by Tony Chang.
3350
3351         Some W3C test submissions point out that subsequent accesses to cursor properties should
3352         yield the same value until the cursor advances. We handled this with custom binding code for
3353         IDBCursor.value but not IDBCursor.key or IDBCursor.primaryKey. The custom value code is
3354         being removed in webkit.org/b/100034 in favor of returning ScriptValue and the same fix can
3355         be applied to key/primaryKey.
3356
3357         Test: storage/indexeddb/cursor-properties.html
3358
3359         * Modules/indexeddb/IDBCursor.cpp: Compute/store/serve up ScriptValues instead of IDBKeys
3360         (WebCore::IDBCursor::key):
3361         (WebCore::IDBCursor::primaryKey):
3362         (WebCore::IDBCursor::setValueReady):
3363         * Modules/indexeddb/IDBCursor.h:
3364         (IDBCursor):
3365         (WebCore::IDBCursor::idbPrimaryKey): Expose this for callers that need access to the IDBKey
3366         * Modules/indexeddb/IDBCursor.idl:
3367         * Modules/indexeddb/IDBObjectStore.cpp: ... like this one.
3368         (WebCore):
3369         * Modules/indexeddb/IDBRequest.cpp:
3370         (WebCore::IDBRequest::dispatchEvent): Pass along script context, for the conversion.
3371         * bindings/v8/IDBBindingUtilities.cpp:
3372         (WebCore::idbKeyToScriptValue): New method for explicit conversion.
3373         (WebCore):
3374         * bindings/v8/IDBBindingUtilities.h:
3375         (WebCore):
3376
3377 2012-10-24  Ami Fischman  <fischman@chromium.org>
3378
3379         call to setNeedsLayout during RenderVideo::paintReplaced
3380         https://bugs.webkit.org/show_bug.cgi?id=100265
3381
3382         Reviewed by Eric Carlson.
3383
3384         Removed unnecessary call and added new defensive guards to catch erroneous setNeedsLayout() calls
3385         during paints earlier (so the offending calls are in the emitted stacktrace).
3386
3387         No new tests - new defensive checks are triggered by existing tests.
3388
3389         * page/FrameView.cpp:
3390         (WebCore::FrameView::paintContents): forbid setNeedsLayout() during painting
3391         * rendering/RenderObject.cpp:
3392         (WebCore):
3393         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope):
3394         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::~SetLayoutNeededForbiddenScope):
3395         * rendering/RenderObject.h:
3396         (RenderObject):
3397         (SetLayoutNeededForbiddenScope): added helper class for forbidding setNeedsLayout() in a scope.
3398         * rendering/RenderVideo.cpp:
3399         (WebCore::RenderVideo::paintReplaced): drop the offending & unnecessary call to updatePlayer().
3400
3401 2012-10-24  Adam Barth  <abarth@webkit.org>
3402
3403         [V8] ActiveDOMObjectEpilogueVisitor is unnecessary and can be deleted
3404         https://bugs.webkit.org/show_bug.cgi?id=100208
3405
3406         Reviewed by Eric Seidel.
3407
3408         Rather than clearing and re-establishing the weak callback for
3409         ActiveDOMObjects during every GC, this patch puts all the
3410         ActiveDOMObjects with pending activity into an object group with a live
3411         object, causing them not to be garbage collected.
3412
3413         In addition to simplifying this code, this patch makes the patch in
3414         https://bugs.webkit.org/show_bug.cgi?id=100175 much easier because
3415         V8GCController no longer needs to know how to configure the weak
3416         callbacks for these objects.
3417
3418         * bindings/v8/V8GCController.cpp:
3419         (WebCore::ActiveDOMObjectPrologueVisitor::ActiveDOMObjectPrologueVisitor):
3420         (ActiveDOMObjectPrologueVisitor):
3421         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
3422         (WebCore::V8GCController::majorGCPrologue):
3423         (WebCore::V8GCController::majorGCEpilogue):
3424         * bindings/v8/V8PerIsolateData.cpp:
3425         (WebCore::V8PerIsolateData::V8PerIsolateData):
3426         * bindings/v8/V8PerIsolateData.h:
3427         (WebCore::V8PerIsolateData::liveRoot):
3428         (V8PerIsolateData):
3429
3430 2012-10-24  Brady Eidson  <beidson@apple.com>
3431
3432         Add a strategy for loader customization.
3433         https://bugs.webkit.org/show_bug.cgi?id=100278
3434
3435         Reviewed by Alexey Proskuryakov.
3436
3437         It's empty for now and does nothing, just like the goggles.
3438
3439         * WebCore.gypi:
3440         * WebCore.vcproj/WebCore.vcproj:
3441         * WebCore.xcodeproj/project.pbxproj:
3442         * platform/PlatformStrategies.h:
3443         (WebCore::PlatformStrategies::loaderStrategy):
3444         (PlatformStrategies):
3445         (WebCore::PlatformStrategies::PlatformStrategies):
3446
3447 2012-10-24  Tony Chang  <tony@chromium.org>
3448
3449         Setting width of a flexitem causes the adjacent flex item to be displayed poorly.
3450         https://bugs.webkit.org/show_bug.cgi?id=99925
3451
3452         Reviewed by Ojan Vafai.
3453
3454         Make sure that we always repaint when moving a child. This is similar to what RenderDeprecatedFlexibleBox does.
3455
3456         Test: css3/flexbox/repaint-during-resize-no-flex.html
3457
3458         * rendering/RenderFlexibleBox.cpp:
3459         (WebCore::RenderFlexibleBox::setFlowAwareLocationForChild): Move logic for repaining into the helper method
3460         for setting the location of a child.
3461         (WebCore::RenderFlexibleBox::layoutColumnReverse): Remove code for repaint since it's now in setFlowAwareLocationForChild.
3462         (WebCore::RenderFlexibleBox::adjustAlignmentForChild): Remove code for repaint since it's now in setFlowAwareLocationForChild.
3463
3464 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
3465
3466         Fix CALayer hiearchy when combining tiling with preserve-3d
3467         https://bugs.webkit.org/show_bug.cgi?id=100205
3468
3469         Reviewed by Dean Jackson.
3470
3471         When an element has "transform-style: preserve-3d", its GraphicsLayerCA has a